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

Commit 2296bb2

Browse files
committed
Remove this_ptr and use ZVAL_OBJ() when needed
1 parent 9881582 commit 2296bb2

24 files changed

+53
-48
lines changed

src/php_v8_array.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ static PHP_METHOD(V8Array, __construct) {
4343

4444
PHP_V8_THROW_VALUE_EXCEPTION_WHEN_EMPTY(local_array, "Failed to create Array value");
4545

46-
ZVAL_COPY_VALUE(&php_v8_value->this_ptr, getThis());
4746
php_v8_object_store_self_ptr(php_v8_value, local_array);
4847

4948
php_v8_value->persistent->Reset(isolate, local_array);

src/php_v8_boolean_object.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ static PHP_METHOD(V8BooleanObject, __construct) {
3838

3939
v8::Local<v8::BooleanObject> local_bool_obj = v8::BooleanObject::New(isolate, value).As<v8::BooleanObject>();
4040

41-
ZVAL_COPY_VALUE(&php_v8_value->this_ptr, getThis());
4241
php_v8_object_store_self_ptr(php_v8_value, local_bool_obj);
4342

4443
php_v8_value->persistent->Reset(isolate, local_bool_obj);

src/php_v8_callback_info.cc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,8 @@ static PHP_METHOD(V8CallbackInfo, GetIsolate) {
130130
PHP_V8_CALLBACK_INFO_FETCH_WITH_CHECK(getThis(), php_v8_callback_info);
131131
PHP_V8_V8_CALLBACK_INFO_CHECK_IN_CONTEXT(php_v8_callback_info);
132132

133-
RETVAL_ZVAL(&php_v8_callback_info->php_v8_isolate->this_ptr, 1, 0);
133+
ZVAL_OBJ(return_value, &php_v8_callback_info->php_v8_isolate->std);
134+
Z_ADDREF_P(return_value);
134135
}
135136

136137
static PHP_METHOD(V8CallbackInfo, GetContext) {
@@ -141,7 +142,8 @@ static PHP_METHOD(V8CallbackInfo, GetContext) {
141142
PHP_V8_CALLBACK_INFO_FETCH_WITH_CHECK(getThis(), php_v8_callback_info);
142143
PHP_V8_V8_CALLBACK_INFO_CHECK_IN_CONTEXT(php_v8_callback_info);
143144

144-
RETVAL_ZVAL(&php_v8_callback_info->php_v8_context->this_ptr, 1, 0);
145+
ZVAL_OBJ(return_value, &php_v8_callback_info->php_v8_context->std);
146+
Z_ADDREF_P(return_value);
145147
}
146148

147149
static PHP_METHOD(V8CallbackInfo, This) {

src/php_v8_callbacks.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,7 @@ bool php_v8_callback_access_check(v8::Local<v8::Context> accessing_context, v8::
537537
zval args;
538538
zval accessed_object_zv;
539539
zval retval;
540+
zval context_zv;
540541

541542
bool security_retval = false;
542543

@@ -550,7 +551,8 @@ bool php_v8_callback_access_check(v8::Local<v8::Context> accessing_context, v8::
550551

551552
php_v8_get_or_create_value(&accessed_object_zv, accessed_object, php_v8_isolate);
552553

553-
add_index_zval(&args, 0, &php_v8_context->this_ptr);
554+
ZVAL_OBJ(&context_zv, &php_v8_context->std);
555+
add_index_zval(&args, 0, &context_zv);
554556
add_index_zval(&args, 1, &accessed_object_zv);
555557

556558
php_v8_callback_call_from_bucket_with_zargs(0, data, &args, &retval);

src/php_v8_context.cc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,6 @@ static void php_v8_context_free(zend_object *object)
4040
delete php_v8_context->context;
4141
}
4242

43-
if (!Z_ISUNDEF(php_v8_context->this_ptr)) {
44-
zval_ptr_dtor(&php_v8_context->this_ptr);
45-
}
46-
4743
zend_object_std_dtor(&php_v8_context->std);
4844
}
4945

@@ -122,7 +118,6 @@ static PHP_METHOD(V8Context, __construct)
122118

123119
PHP_V8_THROW_VALUE_EXCEPTION_WHEN_EMPTY(context, "Failed to create Context");
124120

125-
ZVAL_COPY_VALUE(&php_v8_context->this_ptr, getThis());
126121
php_v8_context_store_reference(isolate, context, php_v8_context);
127122

128123
php_v8_context->context->Reset(isolate, context);

src/php_v8_context.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ struct _php_v8_context_t {
7272
v8::Persistent<v8::Context> *context;
7373

7474
uint32_t isolate_handle;
75-
zval this_ptr;
75+
7676
zend_object std;
7777
};
7878

src/php_v8_date.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ static PHP_METHOD(V8Date, __construct) {
4242

4343
v8::Local<v8::Date> local_date = maybe_local_date.ToLocalChecked().As<v8::Date>();
4444

45-
ZVAL_COPY_VALUE(&php_v8_value->this_ptr, getThis());
4645
php_v8_object_store_self_ptr(php_v8_value, local_date);
4746

4847
php_v8_value->persistent->Reset(isolate, local_date);

src/php_v8_exceptions.cc

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ void php_v8_throw_try_catch_exception(php_v8_context_t *php_v8_context, v8::TryC
5858

5959
void php_v8_create_try_catch_exception(zval *return_value, php_v8_isolate_t *php_v8_isolate, php_v8_context_t *php_v8_context, v8::TryCatch *try_catch)
6060
{
61+
zval isolate_zv;
62+
zval context_zv;
63+
6164
zval try_catch_zv;
6265
zend_class_entry* ce = NULL;
6366
const char *message = NULL;
@@ -88,8 +91,11 @@ void php_v8_create_try_catch_exception(zval *return_value, php_v8_isolate_t *php
8891
zend_update_property_string(php_v8_try_catch_exception_class_entry, return_value, ZEND_STRL("message"), message);
8992
}
9093

91-
PHP_V8_TRY_CATCH_EXCEPTION_STORE_ISOLATE(return_value, &php_v8_isolate->this_ptr);
92-
PHP_V8_TRY_CATCH_EXCEPTION_STORE_CONTEXT(return_value, &php_v8_context->this_ptr);
94+
ZVAL_OBJ(&isolate_zv, &php_v8_isolate->std);
95+
ZVAL_OBJ(&context_zv, &php_v8_context->std);
96+
97+
PHP_V8_TRY_CATCH_EXCEPTION_STORE_ISOLATE(return_value, &isolate_zv);
98+
PHP_V8_TRY_CATCH_EXCEPTION_STORE_CONTEXT(return_value, &context_zv);
9399

94100
php_v8_try_catch_create_from_try_catch(&try_catch_zv, php_v8_isolate, php_v8_context, try_catch);
95101
PHP_V8_TRY_CATCH_EXCEPTION_STORE_TRY_CATCH(return_value, &try_catch_zv);

src/php_v8_function.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,6 @@ static PHP_METHOD(V8Function, __construct) {
349349

350350
v8::Local<v8::Function> local_function = maybe_local_function.ToLocalChecked();
351351

352-
ZVAL_COPY_VALUE(&php_v8_value->this_ptr, getThis());
353352
php_v8_object_store_self_ptr(php_v8_value, local_function);
354353

355354
php_v8_value->persistent->Reset(isolate, local_function);

src/php_v8_isolate.cc

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,6 @@ static void php_v8_isolate_free(zend_object *object) {
109109
delete php_v8_isolate->weak_values;
110110
}
111111

112-
if (!Z_ISUNDEF(php_v8_isolate->this_ptr)) {
113-
zval_ptr_dtor(&php_v8_isolate->this_ptr);
114-
}
115-
116112
if (php_v8_isolate->gc_data) {
117113
efree(php_v8_isolate->gc_data);
118114
}
@@ -208,7 +204,6 @@ static PHP_METHOD(V8Isolate, __construct) {
208204
php_v8_isolate->isolate = v8::Isolate::New(*php_v8_isolate->create_params);
209205
PHP_V8_ISOLATE_STORE_REFERENCE(php_v8_isolate);
210206

211-
ZVAL_COPY_VALUE(&php_v8_isolate->this_ptr, getThis());
212207
php_v8_isolate->isolate_handle = Z_OBJ_HANDLE_P(getThis());
213208

214209
php_v8_isolate->isolate->SetFatalErrorHandler(php_v8_fatal_error_handler);
@@ -379,7 +374,8 @@ static PHP_METHOD(V8Isolate, GetCurrentContext) {
379374

380375
php_v8_context_t *php_v8_context = php_v8_context_get_reference(local_context);
381376

382-
RETURN_ZVAL(&php_v8_context->this_ptr, 1, 0);
377+
ZVAL_OBJ(return_value, &php_v8_context->std);
378+
Z_ADDREF_P(return_value);
383379
}
384380

385381
static PHP_METHOD(V8Isolate, ThrowException) {

0 commit comments

Comments
 (0)