value to convert is on top of stack
| 5523 | |
| 5524 | // value to convert is on top of stack |
| 5525 | static cson_value *table_to_cson_object(Lua L, int lvl, json_conv *conv) |
| 5526 | { |
| 5527 | cson_value *v = cson_value_new_object(); |
| 5528 | cson_object *o = cson_value_get_object(v); |
| 5529 | lua_pushnil(L); |
| 5530 | while (lua_next(L, -2)) { |
| 5531 | cson_value *val = table_to_cson(L, lvl, conv); // get value |
| 5532 | if (val == NULL) { |
| 5533 | cson_free_value(v); |
| 5534 | return NULL; |
| 5535 | } |
| 5536 | lua_pop(L, 1); // remove value |
| 5537 | |
| 5538 | lua_pushvalue(L, -1); // push copy of key |
| 5539 | const char *key = luabb_tostring(L, -1); // conv key to str |
| 5540 | cson_object_set(o, key, val); |
| 5541 | lua_pop(L, 1); // pop copy of key (now a string) |
| 5542 | } |
| 5543 | return v; |
| 5544 | } |
| 5545 | |
| 5546 | static int is_array(Lua L) |
| 5547 | { |
no test coverage detected