4.3. Stack Operations¶
-
SQInteger
sq_cmp
(HSQUIRRELVM v)¶ Parameters: - v (HSQUIRRELVM) – the target VM
Returns: > 0 if obj1>obj2
Returns: == 0 if obj1==obj2
Returns: < 0 if obj1<obj2
compares 2 object from the top of the stack. obj2 should be pushed before obj1.
-
SQInteger
sq_gettop
(HSQUIRRELVM v)¶ Parameters: - v (HSQUIRRELVM) – the target VM
Returns: an integer representing the index of the top of the stack
returns the index of the top of the stack
-
void
sq_pop
(HSQUIRRELVM v, SQInteger nelementstopop)¶ Parameters: - v (HSQUIRRELVM) – the target VM
- nelementstopop (SQInteger) – the number of elements to pop
pops n elements from the stack
-
void
sq_poptop
(HSQUIRRELVM v)¶ Parameters: - v (HSQUIRRELVM) – the target VM
pops 1 object from the stack
-
void
sq_push
(HSQUIRRELVM v, SQInteger idx)¶ Parameters: - v (HSQUIRRELVM) – the target VM
- idx (SQInteger) – the index in the stack of the value that has to be pushed
pushes in the stack the value at the index idx
-
void
sq_remove
(HSQUIRRELVM v, SQInteger idx)¶ Parameters: - v (HSQUIRRELVM) – the target VM
- idx (SQInteger) – index of the element that has to be removed
removes an element from an arbitrary position in the stack
-
SQRESULT
sq_reservestack
(HSQUIRRELVM v, SQInteger nsize)¶ Parameters: - v (HSQUIRRELVM) – the target VM
- nsize (SQInteger) – required stack size
Returns: a SQRESULT
ensure that the stack space left is at least of a specified size.If the stack is smaller it will automatically grow. If there’s a metamethod currently running the function will fail and the stack will not be resized, this situation has to be considered a “stack overflow”.
-
void
sq_settop
(HSQUIRRELVM v, SQInteger x)¶ Parameters: - v (HSQUIRRELVM) – the target VM
- x (SQInteger) – the new top index
resize the stack. If new top is bigger then the current top the function will push nulls.