mirror of
https://github.com/phpv8/v8js.git
synced 2025-03-22 12:37:01 +00:00
Make php_v8js_write_property export only public properties
Before a property would have been exported, even if a derived class declared it either private or protected.
This commit is contained in:
parent
b888cfce0d
commit
257233be51
4
v8js.cc
4
v8js.cc
@ -1296,12 +1296,16 @@ static void php_v8js_write_property(zval *object, zval *member, zval *value ZEND
|
|||||||
{
|
{
|
||||||
V8JS_BEGIN_CTX(c, object)
|
V8JS_BEGIN_CTX(c, object)
|
||||||
|
|
||||||
|
/* Check whether member is public, if so, export to V8. */
|
||||||
|
zend_property_info *property_info = zend_get_property_info(c->std.ce, member, 1 TSRMLS_CC);
|
||||||
|
if(property_info->flags & ZEND_ACC_PUBLIC) {
|
||||||
/* Global PHP JS object */
|
/* Global PHP JS object */
|
||||||
v8::Local<v8::String> object_name_js = v8::Local<v8::String>::New(c->isolate, c->object_name);
|
v8::Local<v8::String> object_name_js = v8::Local<v8::String>::New(c->isolate, c->object_name);
|
||||||
v8::Local<v8::Object> jsobj = V8JS_GLOBAL->Get(object_name_js)->ToObject();
|
v8::Local<v8::Object> jsobj = V8JS_GLOBAL->Get(object_name_js)->ToObject();
|
||||||
|
|
||||||
/* Write value to PHP JS object */
|
/* Write value to PHP JS object */
|
||||||
jsobj->ForceSet(V8JS_SYML(Z_STRVAL_P(member), Z_STRLEN_P(member)), zval_to_v8js(value, c->isolate TSRMLS_CC), v8::ReadOnly);
|
jsobj->ForceSet(V8JS_SYML(Z_STRVAL_P(member), Z_STRLEN_P(member)), zval_to_v8js(value, c->isolate TSRMLS_CC), v8::ReadOnly);
|
||||||
|
}
|
||||||
|
|
||||||
/* Write value to PHP object */
|
/* Write value to PHP object */
|
||||||
std_object_handlers.write_property(object, member, value ZEND_HASH_KEY_CC TSRMLS_CC);
|
std_object_handlers.write_property(object, member, value ZEND_HASH_KEY_CC TSRMLS_CC);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user