static as_val * map_rec_get(const as_rec * r, const char * name) { as_map * m = (as_map *) r->data; as_string s; as_string_init(&s, (char *) name, false); as_val * v = as_map_get(m, (as_val *) &s); as_string_destroy(&s); return v; }
static int mod_lua_map_index(lua_State * l) { mod_lua_box * box = mod_lua_checkbox(l, 1, CLASS_NAME); as_map * map = (as_map *) mod_lua_box_value(box); as_val * val = NULL; if ( map ) { as_val * key = mod_lua_takeval(l, 2); if ( key ) { val = as_map_get(map, key); as_val_destroy(key); } } if ( val ) { mod_lua_pushval(l, val); } else { lua_pushnil(l); } return 1; }