NAME
svalue - internal type for storing Pike values

DESCRIPTION
The 'struct svalue' contains one Pike 'value', variables, arrays and the evaluator are all svalues. An svalue consists of three elements: type, subtype and a union containing the actual value. The type is a short which tells you what type the svalue is. The value is one of the following:

T_ARRAY When type is T_ARRAY, the array is stored in

the 'array' member of the union. So if sval is
the pointer to the svalue, you would use sval->u.array
to access the actual array.
T_MAPPING In this case, you use sval->u.mapping.
T_MULTISET sval->u.multiset
T_OBJECT sval->u.object
T_FUNCTION Functions are a bit more difficult, sval->u.object
is the object the function is in, and sval->subtype
is the number of the function in that object.
T_PROGRAM sval->u.program is the struct program you want.
T_STRING sval->u.string
T_FLOAT sval->u.float_number
T_INT sval->u.integer, a special case is that sval->subtype
is used in some cases to represent the value
'undefined'. This is what zero_type detects.

There are lots of functions operating on svalues, so you shouldn't have to do all that much stuff with them yourself. However, for now you do need to check the type and extract the proper member of the union yourself when writing your own C functions for Pike.

KEYWORDS
internals

RELATED PAGES