Skip to content
This repository was archived by the owner on Mar 29, 2024. It is now read-only.

Commit 78cd420

Browse files
authored
Merge pull request #18 from pinepain/improve-api
Improve API
2 parents 3bdf376 + c99064b commit 78cd420

File tree

82 files changed

+3286
-845
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+3286
-845
lines changed

README.md

+7-4
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ in your IDE and other code-analysis tools.
7373
### Requirements
7474

7575
#### V8
76-
You will need a recent v8 Google JavaScript engine version installed. At this time the extension is tested on 5.7.202.
76+
You will need a recent v8 Google JavaScript engine version installed. At this time the extension is tested on 5.7.514.
7777

7878
#### PHP
7979
This extension is PHP7-only. It works and tested with both PHP 7.0 and PHP 7.1.
@@ -95,9 +95,10 @@ $ php --ri v8
9595
```
9696

9797
While [pinepain/php](https://launchpad.net/~pinepain/+archive/ubuntu/php) PPA targets to contain all necessary
98-
extensions with dependencies, you may find useful
99-
[pinepain/libv8-5.7](https://launchpad.net/~pinepain/+archive/ubuntu/libv8-5.7) and
100-
[pinepain/php-v8](https://launchpad.net/~pinepain/+archive/ubuntu/php-v8) standalone PPAs.
98+
extensions with dependencies, you may find
99+
[pinepain/libv8-5.7](https://launchpad.net/~pinepain/+archive/ubuntu/libv8-5.7),
100+
[pinepain/libv8-experimental](https://launchpad.net/~pinepain/+archive/ubuntu/libv8-experimental) and
101+
[pinepain/php-v8](https://launchpad.net/~pinepain/+archive/ubuntu/php-v8) standalone PPAs useful.
101102

102103

103104
#### OS X (homebrew)
@@ -136,6 +137,8 @@ $ sudo make install
136137

137138
- To track memory usage you may want to use `smem`, `pmem` or even `lsof` to see what shared object are loaded
138139
and `free` to display free and used memory in the system.
140+
- [pinepain/libv8-experimental](https://launchpad.net/~pinepain/+archive/ubuntu/libv8-experimental) normally contains
141+
`libv8` version that used in current `master` branch.
139142

140143
## Credits
141144

config.m4

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ if test "$PHP_V8" != "no"; then
88
SEARCH_PATH="/usr/local /usr"
99
SEARCH_FOR="include/v8.h"
1010

11-
V8_MIN_API_VERSION_STR=5.7.202
11+
V8_MIN_API_VERSION_STR=5.7.514
1212

1313
DESIRED_V8_VERSION=`echo "${V8_MIN_API_VERSION_STR}" | $AWK 'BEGIN { FS = "."; } { printf "%s.%s", [$]1, [$]2;}'`
1414

@@ -201,6 +201,8 @@ if test "$PHP_V8" != "no"; then
201201
src/php_v8_object.cc \
202202
src/php_v8_function.cc \
203203
src/php_v8_array.cc \
204+
src/php_v8_map.cc \
205+
src/php_v8_set.cc \
204206
src/php_v8_date.cc \
205207
src/php_v8_regexp.cc \
206208
src/php_v8_number_object.cc \

php_v8.h

+15
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,21 @@ ZEND_BEGIN_MODULE_GLOBALS(v8)
5353
bool v8_initialized;
5454
ZEND_END_MODULE_GLOBALS(v8)
5555

56+
// Add zend_type support (new since PHP 7.2)
57+
#ifdef ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX
58+
#define PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(name, return_reference, required_num_args, classname, allow_null) \
59+
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(name, return_reference, required_num_args, classname, allow_null)
60+
61+
#define PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(name, return_reference, required_num_args, type, allow_null) \
62+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(name, return_reference, required_num_args, type, allow_null)
63+
#else
64+
#define PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(name, return_reference, required_num_args, classname, allow_null) \
65+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(name, return_reference, required_num_args, IS_OBJECT, #classname, allow_null)
66+
67+
#define PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(name, return_reference, required_num_args, type, allow_null) \
68+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(name, return_reference, required_num_args, type, NULL, allow_null)
69+
#endif
70+
5671

5772
/* Always refer to the globals in your function as PHP_V8_G(variable).
5873
You are encouraged to rename these macros something shorter, see

src/php_v8_array.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_v8_array___construct, ZEND_SEND_BY_VAL, ZEND_RETU
6969
ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
7070
ZEND_END_ARG_INFO()
7171

72-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_array_Length, ZEND_RETURN_VALUE, 0, IS_LONG, NULL, 0)
72+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_array_Length, ZEND_RETURN_VALUE, 0, IS_LONG, 0)
7373
ZEND_END_ARG_INFO()
7474

7575

src/php_v8_boolean.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_v8_boolean___construct, ZEND_SEND_BY_VAL, ZEND_RE
6565
ZEND_ARG_TYPE_INFO(0, value, _IS_BOOL, 0)
6666
ZEND_END_ARG_INFO()
6767

68-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_boolean_Value, ZEND_RETURN_VALUE, 0, _IS_BOOL, NULL, 0)
68+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_boolean_Value, ZEND_RETURN_VALUE, 0, _IS_BOOL, 0)
6969
ZEND_END_ARG_INFO()
7070

7171

src/php_v8_boolean_object.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_v8_boolean_object___construct, ZEND_SEND_BY_VAL,
6767
ZEND_ARG_TYPE_INFO(0, value, _IS_BOOL, 0)
6868
ZEND_END_ARG_INFO()
6969

70-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_boolean_object_ValueOf, ZEND_RETURN_VALUE, 0, _IS_BOOL, NULL, 0)
70+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_boolean_object_ValueOf, ZEND_RETURN_VALUE, 0, _IS_BOOL, 0)
7171
ZEND_END_ARG_INFO()
7272

7373

src/php_v8_callback_info.cc

+6-6
Original file line numberDiff line numberDiff line change
@@ -199,22 +199,22 @@ static PHP_METHOD(V8CallbackInfo, InContext) {
199199
}
200200

201201

202-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_callback_info_GetIsolate, ZEND_RETURN_VALUE, 0, IS_OBJECT, PHP_V8_NS "\\Isolate", 0)
202+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_callback_info_GetIsolate, ZEND_RETURN_VALUE, 0, V8\\Isolate, 0)
203203
ZEND_END_ARG_INFO()
204204

205-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_callback_info_GetContext, ZEND_RETURN_VALUE, 0, IS_OBJECT, PHP_V8_NS "\\Context", 0)
205+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_callback_info_GetContext, ZEND_RETURN_VALUE, 0, V8\\Context, 0)
206206
ZEND_END_ARG_INFO()
207207

208-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_callback_info_This, ZEND_RETURN_VALUE, 0, IS_OBJECT, PHP_V8_NS "\\ObjectValue", 0)
208+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_callback_info_This, ZEND_RETURN_VALUE, 0, V8\\ObjectValue, 0)
209209
ZEND_END_ARG_INFO()
210210

211-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_callback_info_Holder, ZEND_RETURN_VALUE, 0, IS_OBJECT, PHP_V8_NS "\\ObjectValue", 0)
211+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_callback_info_Holder, ZEND_RETURN_VALUE, 0, V8\\ObjectValue, 0)
212212
ZEND_END_ARG_INFO()
213213

214-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_callback_info_GetReturnValue, ZEND_RETURN_VALUE, 0, IS_OBJECT, PHP_V8_NS "\\ReturnValue", 0)
214+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_callback_info_GetReturnValue, ZEND_RETURN_VALUE, 0, V8\\ReturnValue, 0)
215215
ZEND_END_ARG_INFO()
216216

217-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_callback_info_InContext, ZEND_RETURN_VALUE, 0, _IS_BOOL, NULL, 0)
217+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_callback_info_InContext, ZEND_RETURN_VALUE, 0, _IS_BOOL, 0)
218218
ZEND_END_ARG_INFO()
219219

220220

src/php_v8_context.cc

+5-5
Original file line numberDiff line numberDiff line change
@@ -314,10 +314,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_v8_context___construct, ZEND_SEND_BY_VAL, ZEND_RE
314314
ZEND_END_ARG_INFO()
315315

316316

317-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_context_GetIsolate, ZEND_RETURN_VALUE, 0, IS_OBJECT, PHP_V8_NS "\\Isolate", 0)
317+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_context_GetIsolate, ZEND_RETURN_VALUE, 0, V8\\Isolate, 0)
318318
ZEND_END_ARG_INFO()
319319

320-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_context_GlobalObject, ZEND_RETURN_VALUE, 0, IS_OBJECT, PHP_V8_NS "\\ObjectValue", 0)
320+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_context_GlobalObject, ZEND_RETURN_VALUE, 0, V8\\ObjectValue, 0)
321321
ZEND_END_ARG_INFO()
322322

323323
// void method
@@ -333,23 +333,23 @@ ZEND_END_ARG_INFO()
333333
ZEND_BEGIN_ARG_INFO_EX(arginfo_v8_context_UseDefaultSecurityToken, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 0)
334334
ZEND_END_ARG_INFO()
335335

336-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_context_GetSecurityToken, ZEND_RETURN_VALUE, 0, IS_OBJECT, PHP_V8_NS "\\Value", 0)
336+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_context_GetSecurityToken, ZEND_RETURN_VALUE, 0, V8\\Value, 0)
337337
ZEND_END_ARG_INFO()
338338

339339
// void method
340340
ZEND_BEGIN_ARG_INFO_EX(arginfo_v8_context_AllowCodeGenerationFromStrings, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 1)
341341
ZEND_ARG_TYPE_INFO(0, allow, _IS_BOOL, 0)
342342
ZEND_END_ARG_INFO()
343343

344-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_context_IsCodeGenerationFromStringsAllowed, ZEND_RETURN_VALUE, 0, _IS_BOOL, NULL, 0)
344+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_context_IsCodeGenerationFromStringsAllowed, ZEND_RETURN_VALUE, 0, _IS_BOOL, 0)
345345
ZEND_END_ARG_INFO()
346346

347347
// void method
348348
ZEND_BEGIN_ARG_INFO_EX(arginfo_v8_context_SetErrorMessageForCodeGenerationFromStrings, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 1)
349349
ZEND_ARG_OBJ_INFO(0, message, V8\\StringValue, 0)
350350
ZEND_END_ARG_INFO()
351351

352-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_context_EstimatedSize, ZEND_RETURN_VALUE, 0, IS_LONG, NULL, 0)
352+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_context_EstimatedSize, ZEND_RETURN_VALUE, 0, IS_LONG, 0)
353353
ZEND_END_ARG_INFO()
354354

355355

src/php_v8_date.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_v8_date___construct, ZEND_SEND_BY_VAL, ZEND_RETUR
9595
ZEND_ARG_TYPE_INFO(0, time, IS_DOUBLE, 0)
9696
ZEND_END_ARG_INFO()
9797

98-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_date_ValueOf, ZEND_RETURN_VALUE, 0, IS_DOUBLE, NULL, 0)
98+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_date_ValueOf, ZEND_RETURN_VALUE, 0, IS_DOUBLE, 0)
9999
ZEND_END_ARG_INFO()
100100

101101
// void method

src/php_v8_exception.cc

+7-7
Original file line numberDiff line numberDiff line change
@@ -191,37 +191,37 @@ static PHP_METHOD(V8Exception, GetStackTrace) {
191191
}
192192

193193

194-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_exception_RangeError, ZEND_RETURN_VALUE, 2, IS_OBJECT, PHP_V8_NS "\\Value", 0)
194+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_exception_RangeError, ZEND_RETURN_VALUE, 2, V8\\Value, 0)
195195
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
196196
ZEND_ARG_OBJ_INFO(0, message, V8\\StringValue, 0)
197197
ZEND_END_ARG_INFO()
198198

199-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_exception_ReferenceError, ZEND_RETURN_VALUE, 2, IS_OBJECT, PHP_V8_NS "\\Value", 0)
199+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_exception_ReferenceError, ZEND_RETURN_VALUE, 2, V8\\Value, 0)
200200
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
201201
ZEND_ARG_OBJ_INFO(0, message, V8\\StringValue, 0)
202202
ZEND_END_ARG_INFO()
203203

204-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_exception_SyntaxError, ZEND_RETURN_VALUE, 2, IS_OBJECT, PHP_V8_NS "\\Value", 0)
204+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_exception_SyntaxError, ZEND_RETURN_VALUE, 2, V8\\Value, 0)
205205
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
206206
ZEND_ARG_OBJ_INFO(0, message, V8\\StringValue, 0)
207207
ZEND_END_ARG_INFO()
208208

209-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_exception_TypeError, ZEND_RETURN_VALUE, 2, IS_OBJECT, PHP_V8_NS "\\Value", 0)
209+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_exception_TypeError, ZEND_RETURN_VALUE, 2, V8\\Value, 0)
210210
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
211211
ZEND_ARG_OBJ_INFO(0, message, V8\\StringValue, 0)
212212
ZEND_END_ARG_INFO()
213213

214-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_exception_Error, ZEND_RETURN_VALUE, 2, IS_OBJECT, PHP_V8_NS "\\Value", 0)
214+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_exception_Error, ZEND_RETURN_VALUE, 2, V8\\Value, 0)
215215
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
216216
ZEND_ARG_OBJ_INFO(0, message, V8\\StringValue, 0)
217217
ZEND_END_ARG_INFO()
218218

219-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_exception_CreateMessage, ZEND_RETURN_VALUE, 2, IS_OBJECT, PHP_V8_NS "\\Message", 0)
219+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_exception_CreateMessage, ZEND_RETURN_VALUE, 2, V8\\Message, 0)
220220
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
221221
ZEND_ARG_OBJ_INFO(0, exception, V8\\Value, 0)
222222
ZEND_END_ARG_INFO()
223223

224-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_exception_GetStackTrace, ZEND_RETURN_VALUE, 2, IS_OBJECT, PHP_V8_NS "\\StackTrace", 1)
224+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_exception_GetStackTrace, ZEND_RETURN_VALUE, 2, V8\\StackTrace, 1)
225225
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
226226
ZEND_ARG_OBJ_INFO(0, exception, V8\\Value, 0)
227227
ZEND_END_ARG_INFO()

src/php_v8_exceptions.cc

+11-11
Original file line numberDiff line numberDiff line change
@@ -168,13 +168,13 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_v8_exceptions_try_catch___construct, ZEND_SEND_BY
168168
ZEND_ARG_OBJ_INFO(0, try_catch, V8\\TryCatch, 0)
169169
ZEND_END_ARG_INFO()
170170

171-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_exceptions_try_catch_GetIsolate, ZEND_RETURN_VALUE, 0, IS_OBJECT, PHP_V8_NS "\\Isolate", 0)
171+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_exceptions_try_catch_GetIsolate, ZEND_RETURN_VALUE, 0, V8\\Isolate, 0)
172172
ZEND_END_ARG_INFO()
173173

174-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_exceptions_try_catch_GetContext, ZEND_RETURN_VALUE, 0, IS_OBJECT, PHP_V8_NS "\\Context", 0)
174+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_exceptions_try_catch_GetContext, ZEND_RETURN_VALUE, 0, V8\\Context, 0)
175175
ZEND_END_ARG_INFO()
176176

177-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_exceptions_try_catch_GetTryCatch, ZEND_RETURN_VALUE, 0, IS_OBJECT, PHP_V8_NS "\\TryCatch", 0)
177+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_exceptions_try_catch_GetTryCatch, ZEND_RETURN_VALUE, 0, V8\\TryCatch, 0)
178178
ZEND_END_ARG_INFO()
179179

180180

@@ -223,35 +223,35 @@ static const zend_function_entry php_v8_value_exception_methods[] = {
223223
PHP_MINIT_FUNCTION(php_v8_exceptions) {
224224
zend_class_entry ce;
225225

226-
INIT_NS_CLASS_ENTRY(ce, PHP_V8_NS "\\Exceptions", "GenericException", php_v8_exception_methods);
226+
INIT_NS_CLASS_ENTRY(ce, "V8\\Exceptions", "GenericException", php_v8_exception_methods);
227227
php_v8_generic_exception_class_entry = zend_register_internal_class_ex(&ce, zend_exception_get_default());
228228

229-
INIT_NS_CLASS_ENTRY(ce, PHP_V8_NS "\\Exceptions", "TryCatchException", php_v8_try_catch_exception_methods);
229+
INIT_NS_CLASS_ENTRY(ce, "V8\\Exceptions", "TryCatchException", php_v8_try_catch_exception_methods);
230230
php_v8_try_catch_exception_class_entry = zend_register_internal_class_ex(&ce, php_v8_generic_exception_class_entry);
231231

232232
zend_declare_property_null(php_v8_try_catch_exception_class_entry, ZEND_STRL("isolate"), ZEND_ACC_PRIVATE);
233233
zend_declare_property_null(php_v8_try_catch_exception_class_entry, ZEND_STRL("context"), ZEND_ACC_PRIVATE);
234234
zend_declare_property_null(php_v8_try_catch_exception_class_entry, ZEND_STRL("try_catch"), ZEND_ACC_PRIVATE);
235235

236236

237-
INIT_NS_CLASS_ENTRY(ce, PHP_V8_NS "\\Exceptions", "TerminationException", php_v8_termination_exception_methods);
237+
INIT_NS_CLASS_ENTRY(ce, "V8\\Exceptions", "TerminationException", php_v8_termination_exception_methods);
238238
php_v8_termination_exception_class_entry = zend_register_internal_class_ex(&ce, php_v8_try_catch_exception_class_entry);
239239

240-
INIT_NS_CLASS_ENTRY(ce, PHP_V8_NS "\\Exceptions", "AbstractResourceLimitException", php_v8_abstract_resource_limit_exception_methods);
240+
INIT_NS_CLASS_ENTRY(ce, "V8\\Exceptions", "AbstractResourceLimitException", php_v8_abstract_resource_limit_exception_methods);
241241
php_v8_abstract_resource_limit_exception_class_entry = zend_register_internal_class_ex(&ce, php_v8_termination_exception_class_entry);
242242
php_v8_abstract_resource_limit_exception_class_entry->ce_flags |= ZEND_ACC_EXPLICIT_ABSTRACT_CLASS;
243243

244-
INIT_NS_CLASS_ENTRY(ce, PHP_V8_NS "\\Exceptions", "TimeLimitException", php_v8_time_limit_exception_methods);
244+
INIT_NS_CLASS_ENTRY(ce, "V8\\Exceptions", "TimeLimitException", php_v8_time_limit_exception_methods);
245245
php_v8_time_limit_exception_class_entry = zend_register_internal_class_ex(&ce, php_v8_abstract_resource_limit_exception_class_entry);
246246

247-
INIT_NS_CLASS_ENTRY(ce, PHP_V8_NS "\\Exceptions", "MemoryLimitException", php_v8_memory_limit_exception_methods);
247+
INIT_NS_CLASS_ENTRY(ce, "V8\\Exceptions", "MemoryLimitException", php_v8_memory_limit_exception_methods);
248248
php_v8_memory_limit_exception_class_entry = zend_register_internal_class_ex(&ce, php_v8_abstract_resource_limit_exception_class_entry);
249249

250-
INIT_NS_CLASS_ENTRY(ce, PHP_V8_NS "\\Exceptions", "ValueException", php_v8_value_exception_methods);
250+
INIT_NS_CLASS_ENTRY(ce, "V8\\Exceptions", "ValueException", php_v8_value_exception_methods);
251251
php_v8_value_exception_class_entry = zend_register_internal_class_ex(&ce, php_v8_generic_exception_class_entry);
252252

253253
// TODO: completely replace ScriptException with TryCatchException
254-
INIT_NS_CLASS_ENTRY(ce, PHP_V8_NS "\\Exceptions", "ScriptException", php_v8_script_exception_methods);
254+
INIT_NS_CLASS_ENTRY(ce, "V8\\Exceptions", "ScriptException", php_v8_script_exception_methods);
255255
php_v8_script_exception_class_entry = zend_register_internal_class_ex(&ce, php_v8_generic_exception_class_entry);
256256

257257
return SUCCESS;

src/php_v8_ext_mem_interface.cc

+10-11
Original file line numberDiff line numberDiff line change
@@ -52,20 +52,19 @@ void php_v8_ext_mem_interface_function_template_AdjustExternalAllocatedMemory(IN
5252
if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &change_in_bytes) == FAILURE) {
5353
return;
5454
}
55+
PHP_V8_FUNCTION_TEMPLATE_FETCH_INTO(getThis(), php_v8_function_template);
5556

56-
PHP_V8_OBJECT_TEMPLATE_FETCH_INTO(getThis(), php_v8_object_template);
57-
58-
RETURN_LONG(php_v8_object_template->persistent_data->adjustSize(change_in_bytes));
57+
RETURN_LONG(php_v8_function_template->persistent_data->adjustSize(change_in_bytes));
5958
}
6059

6160
void php_v8_ext_mem_interface_function_template_GetExternalAllocatedMemory(INTERNAL_FUNCTION_PARAMETERS) {
6261
if (zend_parse_parameters_none() == FAILURE) {
6362
return;
6463
}
6564

66-
PHP_V8_OBJECT_TEMPLATE_FETCH_INTO(getThis(), php_v8_object_template);
65+
PHP_V8_FUNCTION_TEMPLATE_FETCH_INTO(getThis(), php_v8_function_template);
6766

68-
RETURN_LONG(php_v8_object_template->persistent_data->getAdjustedSize());
67+
RETURN_LONG(php_v8_function_template->persistent_data->getAdjustedSize());
6968
}
7069

7170

@@ -76,28 +75,28 @@ void php_v8_ext_mem_interface_object_template_AdjustExternalAllocatedMemory(INTE
7675
return;
7776
}
7877

79-
PHP_V8_FUNCTION_TEMPLATE_FETCH_INTO(getThis(), php_v8_function_template);
78+
PHP_V8_OBJECT_TEMPLATE_FETCH_INTO(getThis(), php_v8_object_template);
8079

81-
RETURN_LONG(php_v8_function_template->persistent_data->adjustSize(change_in_bytes));
80+
RETURN_LONG(php_v8_object_template->persistent_data->adjustSize(change_in_bytes));
8281
}
8382

8483
void php_v8_ext_mem_interface_object_template_GetExternalAllocatedMemory(INTERNAL_FUNCTION_PARAMETERS) {
8584
if (zend_parse_parameters_none() == FAILURE) {
8685
return;
8786
}
8887

89-
PHP_V8_FUNCTION_TEMPLATE_FETCH_INTO(getThis(), php_v8_function_template);
88+
PHP_V8_OBJECT_TEMPLATE_FETCH_INTO(getThis(), php_v8_object_template);
9089

91-
RETURN_LONG(php_v8_function_template->persistent_data->getAdjustedSize());
90+
RETURN_LONG(php_v8_object_template->persistent_data->getAdjustedSize());
9291
}
9392

9493

95-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_php_v8_ext_mem_interface_AdjustExternalAllocatedMemory, ZEND_RETURN_VALUE, 1, IS_LONG, NULL, 0)
94+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_php_v8_ext_mem_interface_AdjustExternalAllocatedMemory, ZEND_RETURN_VALUE, 1, IS_LONG, 0)
9695
ZEND_ARG_TYPE_INFO(0, change_in_bytes, IS_LONG, 0)
9796
ZEND_END_ARG_INFO()
9897

9998

100-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_php_v8_ext_mem_interface_GetExternalAllocatedMemory, ZEND_RETURN_VALUE, 0, IS_LONG, NULL, 0)
99+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_php_v8_ext_mem_interface_GetExternalAllocatedMemory, ZEND_RETURN_VALUE, 0, IS_LONG, 0)
101100
ZEND_END_ARG_INFO()
102101

103102

0 commit comments

Comments
 (0)