mirror of
https://github.com/phpv8/v8js.git
synced 2024-12-22 14:01:53 +00:00
- Fixed crash bug in setting v8js.flags directive using php -d..
This commit is contained in:
parent
2568591d66
commit
e1b8b8c1f5
110
package.xml
110
package.xml
@ -1,41 +1,77 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
|
||||
<package version="1.0" packagerversion="1.9.1">
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<package packagerversion="1.4.11" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
|
||||
http://pear.php.net/dtd/tasks-1.0.xsd
|
||||
http://pear.php.net/dtd/package-2.0
|
||||
http://pear.php.net/dtd/package-2.0.xsd">
|
||||
<name>v8js</name>
|
||||
<channel>pecl.php.net</channel>
|
||||
<summary>V8 Javascript Engine for PHP</summary>
|
||||
<description>This extension embeds the Google's V8 Javascript Engine into PHP.
|
||||
<description>
|
||||
This extension embeds the Google's V8 Javascript Engine into PHP.
|
||||
</description>
|
||||
<maintainers>
|
||||
<maintainer>
|
||||
<user>jani</user>
|
||||
<name>Jani Taskinen</name>
|
||||
<email>jani@php.net</email>
|
||||
<role>lead</role>
|
||||
</maintainer>
|
||||
</maintainers>
|
||||
<release>
|
||||
<version>0.1.0</version>
|
||||
<date>2010-12-30</date>
|
||||
<license>PHP</license>
|
||||
<state>beta</state>
|
||||
<notes>- Initial PECL release
|
||||
</notes>
|
||||
<deps>
|
||||
<dep type="php" rel="ge" version="5.3.3"/>
|
||||
</deps>
|
||||
<configureoptions>
|
||||
<configureoption name="with-v8js" default="autodetect" prompt="Please provide the installation prefix of libv8"/>
|
||||
</configureoptions>
|
||||
<filelist>
|
||||
<file role="src" name="config.m4"/>
|
||||
<file role="doc" name="CREDITS"/>
|
||||
<file role="src" name="Makefile.frag"/>
|
||||
<file role="src" name="php_v8js.h"/>
|
||||
<file role="src" name="php_v8js_macros.h"/>
|
||||
<file role="src" name="v8js.cc"/>
|
||||
<file role="src" name="v8js_convert.cc"/>
|
||||
<file role="src" name="v8js_methods.cc"/>
|
||||
<file role="src" name="v8js_variables.cc"/>
|
||||
</filelist>
|
||||
</release>
|
||||
<lead>
|
||||
<name>Jani Taskinen</name>
|
||||
<user>jani</user>
|
||||
<email>jani@php.net</email>
|
||||
<active>yes</active>
|
||||
</lead>
|
||||
<date>2010-12-30</date>
|
||||
<time>12:12:12</time>
|
||||
<version>
|
||||
<release>0.1.0</release>
|
||||
<api>0.1.0</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>beta</release>
|
||||
<api>beta</api>
|
||||
</stability>
|
||||
<license uri="http://www.php.net/license">PHP</license>
|
||||
<notes>- Initial PECL release
|
||||
</notes>
|
||||
<contents>
|
||||
<dir name="/">
|
||||
<file name="CREDITS" role="doc" />
|
||||
<file name="config.m4" role="src" />
|
||||
<file name="Makefile.frag" role="src" />
|
||||
<file name="v8js.cc" role="src" />
|
||||
<file name="v8js_convert.cc" role="src" />
|
||||
<file name="v8js_methods.cc" role="src" />
|
||||
<file name="v8js_variables.cc" role="src" />
|
||||
<file name="php_v8js.h" role="src" />
|
||||
<file name="php_v8js_macros.h" role="src" />
|
||||
</dir> <!-- / -->
|
||||
</contents>
|
||||
<dependencies>
|
||||
<required>
|
||||
<php>
|
||||
<min>5.3.3</min>
|
||||
</php>
|
||||
<pearinstaller>
|
||||
<min>1.4.0</min>
|
||||
</pearinstaller>
|
||||
</required>
|
||||
</dependencies>
|
||||
<providesextension>v8js</providesextension>
|
||||
<extsrcrelease>
|
||||
<configureoption default="autodetect" name="with-v8js" prompt="Please provide the installation prefix of libv8" />
|
||||
</extsrcrelease>
|
||||
<changelog>
|
||||
<release>
|
||||
<version><release>0.1.1</release><api>0.1.1</api></version>
|
||||
<stability><release>beta</release><api>beta</api></stability>
|
||||
<date>2010-12-31</date>
|
||||
<notes>
|
||||
- Fixed crash bug in setting v8.flags ini directive.
|
||||
- Added notice to registerExtension() if trying to use it when V8 is already initialized.
|
||||
</notes>
|
||||
</release>
|
||||
<release>
|
||||
<version><release>0.1.0</release><api>0.1.0</api></version>
|
||||
<stability><release>beta</release><api>beta</api></stability>
|
||||
<date>2010-12-30</date>
|
||||
<notes>
|
||||
- Initial PECL release.
|
||||
</notes>
|
||||
</release>
|
||||
</changelog>
|
||||
</package>
|
||||
|
73
package2.xml
73
package2.xml
@ -1,73 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<package packagerversion="1.4.11" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
|
||||
http://pear.php.net/dtd/tasks-1.0.xsd
|
||||
http://pear.php.net/dtd/package-2.0
|
||||
http://pear.php.net/dtd/package-2.0.xsd">
|
||||
<name>v8js</name>
|
||||
<channel>pecl.php.net</channel>
|
||||
<summary>V8 Javascript Engine for PHP</summary>
|
||||
<description>
|
||||
This extension embeds the Google's V8 Javascript Engine into PHP.
|
||||
</description>
|
||||
<lead>
|
||||
<name>Jani Taskinen</name>
|
||||
<user>jani</user>
|
||||
<email>jani@php.net</email>
|
||||
<active>yes</active>
|
||||
</lead>
|
||||
<date>2010-12-30</date>
|
||||
<time>12:12:12</time>
|
||||
<version>
|
||||
<release>0.1.0</release>
|
||||
<api>0.1.0</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>beta</release>
|
||||
<api>beta</api>
|
||||
</stability>
|
||||
<license uri="http://www.php.net/license">PHP</license>
|
||||
<notes>- Initial PECL release
|
||||
</notes>
|
||||
<contents>
|
||||
<dir name="/">
|
||||
<file name="CREDITS" role="doc" />
|
||||
<file name="config.m4" role="src" />
|
||||
<file name="Makefile.frag" role="src" />
|
||||
<file name="v8js.cc" role="src" />
|
||||
<file name="v8js_convert.cc" role="src" />
|
||||
<file name="v8js_methods.cc" role="src" />
|
||||
<file name="v8js_variables.cc" role="src" />
|
||||
<file name="php_v8js.h" role="src" />
|
||||
<file name="php_v8js_macros.h" role="src" />
|
||||
</dir> <!-- / -->
|
||||
</contents>
|
||||
<dependencies>
|
||||
<required>
|
||||
<php>
|
||||
<min>5.3.3</min>
|
||||
</php>
|
||||
<pearinstaller>
|
||||
<min>1.4.0</min>
|
||||
</pearinstaller>
|
||||
</required>
|
||||
</dependencies>
|
||||
<providesextension>v8js</providesextension>
|
||||
<extsrcrelease>
|
||||
<configureoption default="autodetect" name="with-v8js" prompt="Please provide the installation prefix of libv8" />
|
||||
</extsrcrelease>
|
||||
<changelog>
|
||||
<release>
|
||||
<version>
|
||||
<release>0.1.0</release>
|
||||
<api>0.1.0</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>beta</release>
|
||||
<api>beta</api>
|
||||
</stability>
|
||||
<date>2010-12-30</date>
|
||||
<notes>- Initial PECL release.
|
||||
</notes>
|
||||
</release>
|
||||
</changelog>
|
||||
</package>
|
@ -24,7 +24,7 @@
|
||||
#include <v8.h>
|
||||
|
||||
/* V8Js Version */
|
||||
#define V8JS_VERSION "0.1.0"
|
||||
#define V8JS_VERSION "0.1.1"
|
||||
|
||||
/* Helper macros */
|
||||
#define V8JS_SYM(v) v8::String::NewSymbol(v, sizeof(v) - 1)
|
||||
|
17
v8js.cc
17
v8js.cc
@ -49,7 +49,7 @@ ZEND_BEGIN_MODULE_GLOBALS(v8js)
|
||||
int disposed_contexts; /* Disposed contexts since last time V8 did GC */
|
||||
|
||||
/* Ini globals */
|
||||
zval *v8_flags; /* V8 command line flags */
|
||||
char *v8_flags; /* V8 command line flags */
|
||||
int max_disposed_contexts; /* Max disposed context allowed before forcing V8 GC */
|
||||
ZEND_END_MODULE_GLOBALS(v8js)
|
||||
|
||||
@ -81,24 +81,22 @@ static ZEND_INI_MH(v8js_OnUpdateV8Flags) /* {{{ */
|
||||
{
|
||||
if (new_value) {
|
||||
if (V8JSG(v8_flags)) {
|
||||
zval_ptr_dtor(&V8JSG(v8_flags));
|
||||
free(V8JSG(v8_flags));
|
||||
V8JSG(v8_flags) = NULL;
|
||||
}
|
||||
if (!new_value[0]) {
|
||||
return FAILURE;
|
||||
}
|
||||
V8JSG(v8_flags) = zend_strndup(new_value, new_value_length);
|
||||
}
|
||||
|
||||
MAKE_STD_ZVAL(V8JSG(v8_flags));
|
||||
ZVAL_STRINGL(V8JSG(v8_flags), new_value, new_value_length, 1);
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
ZEND_INI_BEGIN() /* {{{ */
|
||||
ZEND_INI_ENTRY("v8js.max_disposed_contexts", "25", ZEND_INI_ALL, v8js_OnUpdateMaxDisposedContexts)
|
||||
ZEND_INI_ENTRY("v8js.flags", "", ZEND_INI_ALL, v8js_OnUpdateV8Flags)
|
||||
ZEND_INI_ENTRY("v8js.flags", NULL, ZEND_INI_ALL, v8js_OnUpdateV8Flags)
|
||||
ZEND_INI_END()
|
||||
/* }}} */
|
||||
|
||||
@ -535,7 +533,7 @@ static void php_v8js_init(TSRMLS_D) /* {{{ */
|
||||
|
||||
/* Set V8 command line flags (must be done before V8::Initialize()!) */
|
||||
if (V8JSG(v8_flags)) {
|
||||
v8::V8::SetFlagsFromString(Z_STRVAL_P(V8JSG(v8_flags)), Z_STRLEN_P(V8JSG(v8_flags)));
|
||||
v8::V8::SetFlagsFromString(V8JSG(v8_flags), strlen(V8JSG(v8_flags)));
|
||||
}
|
||||
|
||||
/* Initialize V8 */
|
||||
@ -1195,6 +1193,11 @@ static PHP_MSHUTDOWN_FUNCTION(v8js)
|
||||
V8JSG(extensions) = NULL;
|
||||
}
|
||||
|
||||
if (V8JSG(v8_flags)) {
|
||||
free(V8JSG(v8_flags));
|
||||
V8JSG(v8_flags) = NULL;
|
||||
}
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
/* }}} */
|
||||
|
Loading…
Reference in New Issue
Block a user