0
0
mirror of https://github.com/phpv8/v8js.git synced 2024-12-23 09:31:52 +00:00
Commit Graph

499 Commits

Author SHA1 Message Date
Stefan Siegl
cfb1756fd7 PHP7 adapt: fix double free 2015-08-30 02:19:48 +02:00
Stefan Siegl
794da39882 PHP7 adapt: handle ZEND_WRONG_PROPERTY_INFO special ptr 2015-08-30 02:08:38 +02:00
Stefan Siegl
1e8ce5a609 PHP7 adapt fix: use zend_hash_find_ptr on ce->function_table 2015-08-30 00:53:56 +02:00
Stefan Siegl
592d6528ca PHP7 adapt: fix zend_string memory leaks 2015-08-30 00:26:55 +02:00
Stefan Siegl
19a67118b5 PHP7 adapt: fix zend_register_resource/compileString 2015-08-29 21:56:29 +02:00
Stefan Siegl
a91d2bc413 PHP7 adapt: fix registerExtension 2015-08-29 21:45:59 +02:00
Stefan Siegl
11155a6a51 PHP7 adapt: changed fatal error messages 2015-08-29 21:21:43 +02:00
Stefan Siegl
eca7656b7d PHP7 adapt: fix setModuleLoader 2015-08-29 21:00:13 +02:00
Stefan Siegl
31bafd052d c->properties is NULL anyways (due to ecalloc) 2015-08-29 20:20:09 +02:00
Stefan Siegl
b21acf770a PHP7 adapt: no fallback property_info any longer 2015-08-29 20:19:44 +02:00
Stefan Siegl
49acfc6f22 Adapt ctx_lifetime test to PHP7: changed exception handling 2015-08-29 20:19:22 +02:00
Stefan Siegl
fe7e097d10 PHP7 adapt: use zend_string 2015-08-29 20:19:04 +02:00
Stefan Siegl
a0f3c2302c PHP7 adapt: initialize c->std.handlers as needed 2015-08-29 18:52:30 +02:00
Stefan Siegl
fd6eeddc52 Adapt to PHP7 2015-08-29 17:48:26 +02:00
Stefan Siegl
5477d780a3 PHP7 adapt v8js_v8object_class.cc 2015-08-29 16:47:37 +02:00
Stefan Siegl
916e068c4a PHP7 adapt v8js_object_export.cc 2015-08-29 11:57:53 +02:00
Stefan Siegl
909e3f004d Adapt to PHP7: v8js_convert.cc, v8js_exception.cc, v8js_methods.cc 2015-08-28 21:05:16 +02:00
Stefan Siegl
b8c9badddb Adapt v8js_class.cc to PHP7 API 2015-08-25 23:38:09 +02:00
Stefan Siegl
3fa38e7b87 v8js_class.cc pt.2 for PHP7, zend_object_store_get_object stuff & script resource 2015-08-25 00:24:04 +02:00
Stefan Siegl
a10e601af3 adapt v8js_ctx custom object creation to PHP7 API 2015-08-24 22:19:15 +02:00
Stefan Siegl
f6105ff3cf v8js_class pt.1: pending_exception, module_loader, weak_objects, jsext 2015-08-24 22:05:27 +02:00
Stefan Siegl
8e84f99830 Adapt v8js.cc to PHP7 API 2015-08-24 21:35:29 +02:00
Stefan Siegl
2d0aa9b2cc adapt PHPJS_OBJECT_KEY from zval* to zend_object* 2015-08-24 21:13:35 +02:00
Stefan Siegl
5acc64610d Adapt v8js_array_access.cc to PHP7 API 2015-08-24 20:43:24 +02:00
Stefan Siegl
8389e126b5 adapt to changed ZVAL_STRING/ZVAL_STRINGL/RETVAL_STRINGL macros 2015-08-23 21:14:49 +02:00
Stefan Siegl
45f7e18624 Remove conditional compilation for PHP_VERSION_ID < 7.0.0 2015-08-23 21:10:47 +02:00
Stefan Siegl
cef7b0beba Remove #include of no-more-existing file 2015-08-23 20:22:46 +02:00
Stefan Siegl
e07ea80805 Update README.Linux.md common pitfalls
* recent V8 versions need to be compiled with snnapshot=off to be usable
* use more meaningful destination path
2015-08-19 10:46:48 +02:00
Stefan Siegl
94fb367b15 Merge pull request #154 from rosmo/libplatform-x64
Check lib64 dir for libplatform as well.
2015-08-12 18:59:40 +02:00
Taneli Leppa
9f082a057b Check lib64 dir for libplatform as well. 2015-08-12 18:26:23 +03:00
Stefan Siegl
35e5fbb1fc Don't call V8::ShutdownPlatform for V8 < 3.29.36 2015-08-08 12:12:18 +02:00
Stefan Siegl
829bac9ddc Merge pull request #150 from stesie/issue-140
Fix module caching & memory leaks
2015-08-03 08:40:26 +02:00
Stefan Siegl
204cc0fa6a Merge pull request #151 from stesie/mem-leaks-001
Memory Leak Fixes
2015-08-03 08:40:20 +02:00
Stefan Siegl
0deb7d1802 Track list of valid script object in ctx
We don't know whether the V8Js object dtor or the script (resource)
dtor is called first.  Nevertheless they depend on each other as
we must not simply Reset the persistent v8::Script if the v8::Isolate
was disposed before.

Now the V8Js dtor iterates over all script resources and resets the
persistent v8::Script instances; leaving an invalidated resource
object (which cannot be called anymore).
2015-08-02 23:35:47 +02:00
Stefan Siegl
cb7a1b8d6a Dispose persisted v8::Script object on resource dtor (memory leak) 2015-08-02 22:36:23 +02:00
Stefan Siegl
1f56c8e43c Don't only run dtor, really delete the object 2015-08-02 21:26:18 +02:00
Stefan Siegl
981f502303 ignore run-tests.php valgrind result files 2015-08-02 19:43:58 +02:00
Stefan Siegl
dd4996cd56 delete v8::Extension instance on shutdown 2015-08-02 19:42:42 +02:00
Stefan Siegl
4650273c90 Shutdown V8 on GSHUTDOWN 2015-08-02 19:42:03 +02:00
Stefan Siegl
5018192123 Move libplatform.h include farther down
If it is included before php.h, PHP_V8_API_VERSION is not
defined if V8Js is built as a PHP built-in extension.
2015-08-02 18:15:28 +02:00
Stefan Siegl
6bbe4d932b remove useless zero-initializations (immediately overridden afterwards) 2015-08-01 19:58:44 +02:00
Stefan Siegl
441f7b7fab v8js_commonjs_split_terms: use pointer comparison instead of strlen
The strlen usage on term obviously was wrong here, since the term
string is not null-terminated at that place.
2015-08-01 19:54:23 +02:00
Stefan Siegl
cedcac1318 skip useless estrdup/efree cycle
The garbage collector cannot free the object as it is allocated
on the local stack.
2015-08-01 19:45:21 +02:00
Stefan Siegl
f61c11f995 declare base & identifier const 2015-08-01 19:41:50 +02:00
Stefan Siegl
ea3ec4bd65 Fix commonjs memory leaks (and increase test coverage to 100%) 2015-08-01 19:30:55 +02:00
Stefan Siegl
bfc6b29989 Use emalloc/estrdup/efree in v8js_commonjs.cc + fix memory leak 2015-08-01 19:07:45 +02:00
Stefan Siegl
3324490a79 test issue_127_001.phpt doesn't depend on ext_json 2015-08-01 18:47:44 +02:00
Stefan Siegl
2ce7e420a7 Fix use-after-free on module reuse 2015-08-01 18:11:39 +02:00
Stefan Siegl
d8e239a756 test per isolate module cache seperation 2015-08-01 17:57:57 +02:00
Stefan Siegl
3d89f0250d Provide key compare function for modules_loaded
Without the compare function std::map simply compares one
pointer to another.  However we need to compare the actual
strings.

Besides we must not efree normalised_module_id on return
of require method, since the pointer was added to
modules_loaded (and is valid until destruction of V8Js
class); instead it is now freed during V8Js object destruction.
2015-08-01 17:49:11 +02:00