mirror of
https://github.com/php-win-ext/php-lua.git
synced 2026-03-26 18:12:17 +01:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1ff1eb10c9 | ||
|
|
cbe65b9ad6 | ||
|
|
04f7106631 | ||
|
|
7406b07f2c | ||
|
|
17cbba8b77 | ||
|
|
7cdb287c33 |
18
lua.c
18
lua.c
@@ -351,7 +351,7 @@ zval *php_lua_get_zval_from_lua(lua_State *L, int index, zval *lua_obj, zval *rv
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(Z_TYPE(key)) {
|
switch (Z_TYPE(key)) {
|
||||||
case IS_DOUBLE:
|
case IS_DOUBLE:
|
||||||
case IS_LONG:
|
case IS_LONG:
|
||||||
add_index_zval(rv, Z_DVAL(key), &val);
|
add_index_zval(rv, Z_DVAL(key), &val);
|
||||||
@@ -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);
|
||||||
|
|||||||
47
package.xml
47
package.xml
@@ -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>
|
||||||
|
|||||||
@@ -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
15
tests/issue012.phpt
Normal 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)
|
||||||
Reference in New Issue
Block a user