Developer

API Reference

ILua_Next()

Brew Release
Brew MP 1.0.2
See Also
ILua_ToString()
Description
Pops a key from the stack and pushes the "next" key-value pair of the table at the given index. Used primarily for table traversal. When the end of the table is reached nothing is pushed on the stack and this function returns AEE_ENOMORE.
A typical traversal looks like this:
     // table is in the stack at index 't'
     ILua_PushNil(piLua);  // first key
     while (AEE_SUCCESS == ILua_Next(piLua)) {
       // uses 'key' (at index -2) and 'value' (at index -1) 
       key   = ILua_TypeName(piLua, -2);
       value = ILua_TypeName(piLua, -1);
       // ...
       // removes 'value'; keeps 'key' for next iteration
       ILua_Pop(piLua, 1);
     }
Parameters
  • pif
    []:
    a pointer to the ILua object
  • nIndex
    []:
    the stack index of the table object
Interface
Prototype
   AEEResult ILua_Next(ILua *pif, int nIndex)
Return
If there are no errors and there are more elements to traverse, pushes the next key-value pair on the stack and returns AEE_SUCCESS. Otherwise if there are no more elements left to traverse, pops the last key from the stack and returns AEE_ENOMORE. For other errors, an error code.
Side Effect
The key should not be modified during a traversal, as this confuses the call to ILua_Next. In particular, be cautious of calling ILua_ToString() directly on a key, unless the key is known to actually be a string, as ILua_ToString() may convert the value to a string.
  • Follow