static void iter_wrapper_free(zend_object *object);
static void iter_wrapper_dtor(zend_object *object);
-static zend_object_handlers iterator_object_handlers = {
+static const zend_object_handlers iterator_object_handlers = {
0,
iter_wrapper_free,
iter_wrapper_dtor,
}
/* }}} */
-ZEND_API zend_object_handlers std_object_handlers = {
+ZEND_API const zend_object_handlers std_object_handlers = {
0, /* offset */
zend_object_std_dtor, /* free_obj */
};
BEGIN_EXTERN_C()
-extern ZEND_API zend_object_handlers std_object_handlers;
+extern const ZEND_API zend_object_handlers std_object_handlers;
#define zend_get_function_root_class(fbc) \
((fbc)->common.prototype ? (fbc)->common.prototype->common.scope : (fbc)->common.scope)
}
/* }}} */
-ZEND_API zend_object_handlers* ZEND_FASTCALL zend_get_std_object_handlers(void)
+ZEND_API const zend_object_handlers* ZEND_FASTCALL zend_get_std_object_handlers(void)
{
return &std_object_handlers;
}
#define ZEND_OBJECTS_STORE_HANDLERS 0, zend_object_std_dtor, zend_objects_destroy_object, zend_objects_clone_obj
-ZEND_API zend_object_handlers * ZEND_FASTCALL zend_get_std_object_handlers(void);
+ZEND_API const zend_object_handlers * ZEND_FASTCALL zend_get_std_object_handlers(void);
END_EXTERN_C()
static zend_always_inline void zend_object_release(zend_object *obj)
zval *retval = NULL;
if (!obj->prop_handler || !zend_hash_exists(obj->prop_handler, member_str)) {
- zend_object_handlers *std_hnd = zend_get_std_object_handlers();
+ const zend_object_handlers *std_hnd = zend_get_std_object_handlers();
retval = std_hnd->get_property_ptr_ptr(object, member, type, cache_slot);
}
retval = &EG(uninitialized_zval);
}
} else {
- zend_object_handlers *std_hnd = zend_get_std_object_handlers();
+ const zend_object_handlers *std_hnd = zend_get_std_object_handlers();
retval = std_hnd->read_property(object, member, type, cache_slot, rv);
}
if (hnd) {
hnd->write_func(obj, value);
} else {
- zend_object_handlers *std_hnd = zend_get_std_object_handlers();
+ const zend_object_handlers *std_hnd = zend_get_std_object_handlers();
std_hnd->write_property(object, member, value, cache_slot);
}
zval_dtor(&tmp);
}
} else {
- zend_object_handlers *std_hnd = zend_get_std_object_handlers();
+ const zend_object_handlers *std_hnd = zend_get_std_object_handlers();
retval = std_hnd->has_property(object, member, check_empty, cache_slot);
}
retval = &EG(uninitialized_zval);
}
} else {
- zend_object_handlers *std_hnd = zend_get_std_object_handlers();
+ const zend_object_handlers *std_hnd = zend_get_std_object_handlers();
retval = std_hnd->read_property(object, member, type, cache_slot, rv);
}
if (hnd) {
hnd->write_func(obj, value);
} else {
- zend_object_handlers *std_hnd = zend_get_std_object_handlers();
+ const zend_object_handlers *std_hnd = zend_get_std_object_handlers();
std_hnd->write_property(object, member, value, cache_slot);
}
php_error_docref(NULL, E_WARNING, "Invalid value for has_set_exists");
}
} else {
- zend_object_handlers *std_hnd = zend_get_std_object_handlers();
+ const zend_object_handlers *std_hnd = zend_get_std_object_handlers();
ret = std_hnd->has_property(object, member, has_set_exists, cache_slot);
}
PHP_MINIT_FUNCTION(mysqli)
{
zend_class_entry *ce,cex;
- zend_object_handlers *std_hnd = zend_get_std_object_handlers();
+ const zend_object_handlers *std_hnd = zend_get_std_object_handlers();
REGISTER_INI_ENTRIES();
#ifndef MYSQLI_USE_MYSQLND
return -1;
}
-zend_object_handlers pdo_row_object_handlers = {
+const zend_object_handlers pdo_row_object_handlers = {
0,
zend_objects_destroy_object,
pdo_row_free_storage,
extern const zend_function_entry pdo_row_functions[];
extern zend_class_entry *pdo_row_ce;
void pdo_row_free_storage(zend_object *std);
-extern zend_object_handlers pdo_row_object_handlers;
+extern const zend_object_handlers pdo_row_object_handlers;
zend_object_iterator *php_pdo_dbstmt_iter_get(zend_class_entry *ce, zval *object);
PHP_FE_END
}; /* }}} */
-static zend_object_handlers *zend_std_obj_handlers;
+static const zend_object_handlers *zend_std_obj_handlers;
/* {{{ _reflection_write_property */
static void _reflection_write_property(zval *object, zval *member, zval *value, void **cache_slot)
}
/* }}} */
-static zend_object_handlers sxe_object_handlers = { /* {{{ */
- ZEND_OBJECTS_STORE_HANDLERS,
- sxe_property_read,
- sxe_property_write,
- sxe_dimension_read,
- sxe_dimension_write,
- sxe_property_get_adr,
- sxe_get_value, /* get */
- NULL,
- sxe_property_exists,
- sxe_property_delete,
- sxe_dimension_exists,
- sxe_dimension_delete,
- sxe_get_properties,
- NULL, /* zend_get_std_object_handlers()->get_method,*/
- NULL, /* zend_get_std_object_handlers()->call_method,*/
- NULL, /* zend_get_std_object_handlers()->get_constructor, */
- NULL, /* zend_get_std_object_handlers()->get_class_name,*/
- sxe_objects_compare,
- sxe_object_cast,
- sxe_count_elements,
- sxe_get_debug_info,
- NULL,
- sxe_get_gc,
- NULL,
- NULL
-};
-/* }}} */
+static zend_object_handlers sxe_object_handlers;
/* {{{ sxe_object_clone()
*/
sxe_class_entry->get_iterator = php_sxe_get_iterator;
sxe_class_entry->iterator_funcs.funcs = &php_sxe_iterator_funcs;
zend_class_implements(sxe_class_entry, 1, zend_ce_traversable);
+
+ memcpy(&sxe_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
sxe_object_handlers.offset = XtOffsetOf(php_sxe_object, zo);
sxe_object_handlers.dtor_obj = sxe_object_dtor;
sxe_object_handlers.free_obj = sxe_object_free_storage;
sxe_object_handlers.clone_obj = sxe_object_clone;
- sxe_object_handlers.get_method = zend_get_std_object_handlers()->get_method;
- sxe_object_handlers.get_constructor = zend_get_std_object_handlers()->get_constructor;
- sxe_object_handlers.get_class_name = zend_get_std_object_handlers()->get_class_name;
+ sxe_object_handlers.read_property = sxe_property_read;
+ sxe_object_handlers.write_property = sxe_property_write;
+ sxe_object_handlers.read_dimension = sxe_dimension_read;
+ sxe_object_handlers.write_dimension = sxe_dimension_write;
+ sxe_object_handlers.get_property_ptr_ptr = sxe_property_get_adr;
+ sxe_object_handlers.get = sxe_get_value;
+ sxe_object_handlers.has_property = sxe_property_exists;
+ sxe_object_handlers.unset_property = sxe_property_delete;
+ sxe_object_handlers.has_dimension = sxe_dimension_exists;
+ sxe_object_handlers.unset_dimension = sxe_dimension_delete;
+ sxe_object_handlers.get_properties = sxe_get_properties;
+ sxe_object_handlers.compare_objects = sxe_objects_compare;
+ sxe_object_handlers.cast_object = sxe_object_cast;
+ sxe_object_handlers.count_elements = sxe_count_elements;
+ sxe_object_handlers.get_debug_info = sxe_get_debug_info;
+ sxe_object_handlers.get_closure = NULL;
+ sxe_object_handlers.get_gc = sxe_get_gc;
+
sxe_class_entry->serialize = zend_class_serialize_deny;
sxe_class_entry->unserialize = zend_class_unserialize_deny;
retval = &EG(uninitialized_zval);
}
} else {
- zend_object_handlers * std_hnd = zend_get_std_object_handlers();
+ const zend_object_handlers * std_hnd = zend_get_std_object_handlers();
retval = std_hnd->read_property(object, member, type, cache_slot, rv);
}
}
*/
} else {
- zend_object_handlers * std_hnd = zend_get_std_object_handlers();
+ const zend_object_handlers * std_hnd = zend_get_std_object_handlers();
std_hnd->write_property(object, member, value, cache_slot);
}
}
}
} else {
- zend_object_handlers *std_hnd = zend_get_std_object_handlers();
+ const zend_object_handlers *std_hnd = zend_get_std_object_handlers();
ret = std_hnd->has_property(object, member, has_set_exists, cache_slot);
}
return ret;
zval tmp_member;
zval *retval = NULL;
xmlreader_prop_handler *hnd = NULL;
- zend_object_handlers *std_hnd;
+ const zend_object_handlers *std_hnd;
if (Z_TYPE_P(member) != IS_STRING) {
ZVAL_STR(&tmp_member, zval_get_string_func(member));
zval tmp_member;
zval *retval = NULL;
xmlreader_prop_handler *hnd = NULL;
- zend_object_handlers *std_hnd;
+ const zend_object_handlers *std_hnd;
if (Z_TYPE_P(member) != IS_STRING) {
ZVAL_STR(&tmp_member, zval_get_string_func(member));
xmlreader_object *obj;
zval tmp_member;
xmlreader_prop_handler *hnd = NULL;
- zend_object_handlers *std_hnd;
+ const zend_object_handlers *std_hnd;
if (Z_TYPE_P(member) != IS_STRING) {
ZVAL_STR(&tmp_member, zval_get_string_func(member));
xsl_object *intern;
int prevSubstValue, prevExtDtdValue, clone_docu = 0;
xmlNode *nodep = NULL;
- zend_object_handlers *std_hnd;
+ const zend_object_handlers *std_hnd;
zval *cloneDocu, member, rv;
if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Oo", &id, xsl_xsltprocessor_class_entry, &docp) == FAILURE) {
char **params = NULL;
int clone;
zval *doXInclude, member, rv;
- zend_object_handlers *std_hnd;
+ const zend_object_handlers *std_hnd;
FILE *f;
int secPrefsError = 0;
int secPrefsValue;
zval tmp_member;
zval *retval = NULL;
zip_prop_handler *hnd = NULL;
- zend_object_handlers *std_hnd;
+ const zend_object_handlers *std_hnd;
if (Z_TYPE_P(member) != IS_STRING) {
ZVAL_STR(&tmp_member, zval_get_string_func(member));
zval tmp_member;
zval *retval = NULL;
zip_prop_handler *hnd = NULL;
- zend_object_handlers *std_hnd;
+ const zend_object_handlers *std_hnd;
if (Z_TYPE_P(member) != IS_STRING) {
ZVAL_STR(&tmp_member, zval_get_string_func(member));
ze_zip_object *obj;
zval tmp_member;
zip_prop_handler *hnd = NULL;
- zend_object_handlers *std_hnd;
+ const zend_object_handlers *std_hnd;
int retval = 0;
if (Z_TYPE_P(member) != IS_STRING) {