From dc226c345d42e93b43e1a94c5f6d62a046d41eef Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Thu, 31 Mar 2016 12:56:15 +0300 Subject: [PATCH] fix send_zval_to_lua() --- lua.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lua.c b/lua.c index a9ee0c5..22b27ad 100755 --- a/lua.c +++ b/lua.c @@ -436,9 +436,10 @@ int php_lua_send_zval_to_lua(lua_State *L, zval *val) /* {{{ */ { zval_add_ref(val); add_next_index_zval(callbacks, val); } else { - zval *v; + zval *v; + ulong longkey; zend_string *key; - zval zkey; + zval zkey; HashTable *ht = HASH_OF(val); if (++ht->u.v.nApplyCount > 1) { @@ -448,12 +449,11 @@ int php_lua_send_zval_to_lua(lua_State *L, zval *val) /* {{{ */ { } lua_newtable(L); - ZEND_HASH_FOREACH_STR_KEY_VAL(ht, key, v) { - if (Z_TYPE_P(v) == IS_STRING) { + ZEND_HASH_FOREACH_KEY_VAL_IND(ht, longkey, key, v) { + if (key) { ZVAL_STR(&zkey, key); - } - if (Z_TYPE_P(v) == IS_LONG) { - ZVAL_LONG(&zkey, Z_LVAL_P(v)); + } else { + ZVAL_LONG(&zkey, longkey); } php_lua_send_zval_to_lua(L, &zkey); php_lua_send_zval_to_lua(L, v);