28 obj->
handlers = &donc_object_handlers;
34 return donc_object_create_ex(ce, 0);
40 ZVAL_OBJ(target, donc_object_create_ex(donc_ce, l));
43#define IS_DONC(zval) \
44 (Z_TYPE_P(zval) == IS_OBJECT && instanceof_function(Z_OBJCE_P(zval), donc_ce))
53 val_1 = zval_get_long(
op1);
58 val_2 = zval_get_long(
op2);
61 donc_create(
result, val_1 + val_2);
70 val_1 = zval_get_long(
op1);
75 val_2 = zval_get_long(
op2);
78 donc_create(
result, val_1 * val_2);
131 obj->
handlers = &long_castable_no_operation_object_handlers;
138 return long_castable_no_operation_object_create_ex(ce, 0);
167 obj->
handlers = &float_castable_no_operation_object_handlers;
174 return float_castable_no_operation_object_create_ex(ce, 0.0);
203 obj->
handlers = &numeric_castable_no_operation_object_handlers;
212 return numeric_castable_no_operation_object_create_ex(ce, &tmp);
241 object->handlers = &dimension_handlers_no_ArrayAccess_object_handlers;
255 dimension_common_helper(
object,
offset, 0);
265 dimension_common_helper(
object,
offset, 1);
268static int dimension_handlers_no_ArrayAccess_has_dimension(
zend_object *
object,
zval *
offset,
int check_empty) {
271 dimension_common_helper(
object,
offset, 2);
278 dimension_common_helper(
object,
offset, 3);
284 donc_ce = register_class_DoOperationNoCast();
285 donc_ce->create_object = donc_object_create;
287 donc_object_handlers.do_operation = donc_do_operation;
290 long_castable_no_operation_ce = register_class_LongCastableNoOperations();
291 long_castable_no_operation_ce->create_object = long_castable_no_operation_object_create;
293 long_castable_no_operation_object_handlers.cast_object = long_castable_no_operation_cast_object;
295 float_castable_no_operation_ce = register_class_FloatCastableNoOperations();
296 float_castable_no_operation_ce->create_object = float_castable_no_operation_object_create;
298 float_castable_no_operation_object_handlers.cast_object = float_castable_no_operation_cast_object;
300 numeric_castable_no_operation_ce = register_class_NumericCastableNoOperations();
301 numeric_castable_no_operation_ce->create_object = numeric_castable_no_operation_object_create;
303 numeric_castable_no_operation_object_handlers.cast_object = numeric_castable_no_operation_cast_object;
305 dimension_handlers_no_ArrayAccess_ce = register_class_DimensionHandlersNoArrayAccess();
306 dimension_handlers_no_ArrayAccess_ce->create_object = dimension_handlers_no_ArrayAccess_object_create;
308 dimension_handlers_no_ArrayAccess_object_handlers.read_dimension = dimension_handlers_no_ArrayAccess_read_dimension;
309 dimension_handlers_no_ArrayAccess_object_handlers.write_dimension = dimension_handlers_no_ArrayAccess_write_dimension;
310 dimension_handlers_no_ArrayAccess_object_handlers.has_dimension = dimension_handlers_no_ArrayAccess_has_dimension;
311 dimension_handlers_no_ArrayAccess_object_handlers.unset_dimension = dimension_handlers_no_ArrayAccess_unset_dimension;
void zend_test_object_handlers_init(void)
const zend_object_handlers * handlers
ZEND_API void object_properties_init(zend_object *object, zend_class_entry *class_type)
#define Z_PARAM_NUMBER(dest)
#define ZEND_PARSE_PARAMETERS_END()
#define ZEND_PARSE_PARAMETERS_START(min_num_args, max_num_args)
#define Z_PARAM_LONG(dest)
#define ZEND_METHOD(classname, name)
#define Z_PARAM_DOUBLE(dest)
#define OBJ_PROP_NUM(obj, num)
ZEND_API const zend_object_handlers std_object_handlers
ZEND_API zend_object *ZEND_FASTCALL zend_objects_new(zend_class_entry *ce)
#define UNEXPECTED(condition)
struct _zend_class_entry zend_class_entry
struct _zend_object zend_object
#define ZVAL_DOUBLE(z, d)
ZEND_RESULT_CODE zend_result
struct _zend_object_handlers zend_object_handlers
#define ZVAL_COPY_VALUE(z, v)
ZEND_API void zval_ptr_dtor(zval *zval_ptr)