6 Commits

Author SHA1 Message Date
Xinchen Hui
1ff1eb10c9 releaseing 2.0.3 2017-02-10 19:13:44 +08:00
Xinchen Hui
cbe65b9ad6 Fixed issue #20 (PHP 7: Lua::eval(): unsupported type `unknown' for lua) 2016-05-30 11:44:12 +08:00
Xinchen Hui
04f7106631 back to dev 2016-05-26 17:42:59 +08:00
Xinchen Hui
7406b07f2c Prepare for 2.0.2 2016-05-26 17:42:22 +08:00
Xinchen Hui
17cbba8b77 Fixed issue #22 (Boolean FALSE is always TRUE) 2016-05-20 11:54:37 +08:00
Xinchen Hui
7cdb287c33 back to dev 2016-04-11 10:55:22 +08:00
4 changed files with 70 additions and 12 deletions

16
lua.c
View File

@@ -401,11 +401,15 @@ zval *php_lua_get_zval_from_lua(lua_State *L, int index, zval *lua_obj, zval *rv
int php_lua_send_zval_to_lua(lua_State *L, zval *val) /* {{{ */ { int php_lua_send_zval_to_lua(lua_State *L, zval *val) /* {{{ */ {
try_again:
switch (Z_TYPE_P(val)) { switch (Z_TYPE_P(val)) {
case IS_TRUE: case IS_TRUE:
case IS_FALSE: lua_pushboolean(L, 1);
lua_pushboolean(L, Z_LVAL_P(val));
break; break;
case IS_FALSE:
lua_pushboolean(L, 0);
break;
case IS_UNDEF:
case IS_NULL: case IS_NULL:
lua_pushnil(L); lua_pushnil(L);
break; break;
@@ -470,6 +474,14 @@ int php_lua_send_zval_to_lua(lua_State *L, zval *val) /* {{{ */ {
} }
} }
break; break;
case IS_REFERENCE:
ZVAL_DEREF(val);
goto try_again;
break;
case IS_INDIRECT:
val = Z_INDIRECT_P(val);
goto try_again;
break;
default: default:
php_error_docref(NULL, E_ERROR, "unsupported type `%s' for lua", zend_zval_type_name(val)); php_error_docref(NULL, E_ERROR, "unsupported type `%s' for lua", zend_zval_type_name(val));
lua_pushnil(L); lua_pushnil(L);

View File

@@ -23,19 +23,19 @@
<email>msaraujo@php.net</email> <email>msaraujo@php.net</email>
<active>yes</active> <active>yes</active>
</developer> </developer>
<date>2016-04-11</date> <date>2017-02-10</date>
<time>10:50:27</time> <time>19:15:00</time>
<version> <version>
<release>2.0.1</release> <release>2.0.3</release>
<api>2.0.1</api> <api>2.0.3</api>
</version> </version>
<stability> <stability>
<release>beta</release> <release>stable</release>
<api>beta</api> <api>stable</api>
</stability> </stability>
<license uri="http://www.php.net/license">PHP</license> <license uri="http://www.php.net/license">PHP</license>
<notes> <notes>
- Fixed bug #71997 (One-Dimensional arrays cause segmentation faults) - Fixed issue #20 (PHP 7: Lua::eval(): unsupported type `unknown' for lua)
</notes> </notes>
<contents> <contents>
<dir name="/"> <dir name="/">
@@ -62,6 +62,7 @@
<file name="011.phpt" role="test" /> <file name="011.phpt" role="test" />
<file name="012.phpt" role="test" /> <file name="012.phpt" role="test" />
<file name="013.phpt" role="test" /> <file name="013.phpt" role="test" />
<file name="issue012.phpt" role="test" />
<file name="bug65097.phpt" role="test" /> <file name="bug65097.phpt" role="test" />
<file name="bug71997.phpt" role="test" /> <file name="bug71997.phpt" role="test" />
</dir> </dir>
@@ -80,6 +81,37 @@
<providesextension>lua</providesextension> <providesextension>lua</providesextension>
<extsrcrelease /> <extsrcrelease />
<changelog> <changelog>
<release>
<date>2017-02-10</date>
<version>
<release>2.0.3</release>
<api>2.0.3</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
- Fixed issue #20 (PHP 7: Lua::eval(): unsupported type `unknown' for lua)
</notes>
</release>
<release>
<date>2016-05-26</date>
<version>
<release>2.0.2</release>
<api>2.0.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
- Fixed issue #22 (Boolean FALSE is always TRUE)
</notes>
</release>
<release> <release>
<date>2016-04-11</date> <date>2016-04-11</date>
<version> <version>
@@ -95,7 +127,6 @@
- Fixed bug #71997 (One-Dimensional arrays cause segmentation faults) - Fixed bug #71997 (One-Dimensional arrays cause segmentation faults)
</notes> </notes>
</release> </release>
<release> <release>
<date>2015-10-27</date> <date>2015-10-27</date>
<version> <version>

View File

@@ -48,7 +48,7 @@ extern zend_module_entry lua_module_entry;
#define LUA_G(v) (lua_globals.v) #define LUA_G(v) (lua_globals.v)
#endif #endif
#define PHP_LUA_VERSION "2.0.1" #define PHP_LUA_VERSION "2.0.3"
struct _php_lua_object { struct _php_lua_object {
lua_State *L; lua_State *L;

15
tests/issue012.phpt Normal file
View File

@@ -0,0 +1,15 @@
--TEST--
ISSUE #022 (Boolean FALSE is always TRUE)
--SKIPIF--
<?php
if (!extension_loaded("lua")) print "skip lua extension missing";
?>
--FILE--
<?php
$lua = new Lua();
$lua->assign('TEST', false);
$result = $lua->eval('return TEST');
var_dump($result)
?>
--EXPECT--
bool(false)