Lines Matching refs:op

139 void ZEND_FASTCALL _convert_scalar_to_number(zval *op, zend_bool silent) /* {{{ */  in _convert_scalar_to_number()  argument
142 switch (Z_TYPE_P(op)) { in _convert_scalar_to_number()
144 zend_unwrap_reference(op); in _convert_scalar_to_number()
150 str = Z_STR_P(op); in _convert_scalar_to_number()
151 …if ((Z_TYPE_INFO_P(op)=is_numeric_string(ZSTR_VAL(str), ZSTR_LEN(str), &Z_LVAL_P(op), &Z_DVAL_P(op in _convert_scalar_to_number()
152 ZVAL_LONG(op, 0); in _convert_scalar_to_number()
162 ZVAL_LONG(op, 0); in _convert_scalar_to_number()
165 ZVAL_LONG(op, 1); in _convert_scalar_to_number()
169 zend_long l = Z_RES_HANDLE_P(op); in _convert_scalar_to_number()
170 zval_ptr_dtor(op); in _convert_scalar_to_number()
171 ZVAL_LONG(op, l); in _convert_scalar_to_number()
175 convert_to_long_base(op, 10); in _convert_scalar_to_number()
181 ZEND_API void ZEND_FASTCALL convert_scalar_to_number(zval *op) /* {{{ */ in convert_scalar_to_number() argument
183 _convert_scalar_to_number(op, 1); in convert_scalar_to_number()
188 #define zendi_convert_scalar_to_number(op, holder, result, silent) \ argument
189 if (Z_TYPE_P(op) != IS_LONG) { \
190 if (op==result && Z_TYPE_P(op) != IS_OBJECT) { \
191 _convert_scalar_to_number(op, silent); \
193 switch (Z_TYPE_P(op)) { \
195 …if ((Z_TYPE_INFO(holder)=is_numeric_string(Z_STRVAL_P(op), Z_STRLEN_P(op), &Z_LVAL(holder), &Z_DVA…
201 (op) = &(holder); \
206 (op) = &(holder); \
210 (op) = &(holder); \
213 ZVAL_LONG(&(holder), Z_RES_HANDLE_P(op)); \
214 (op) = &(holder); \
217 ZVAL_COPY(&(holder), op); \
226 if (op == result) { \
227 zval_ptr_dtor(op); \
228 ZVAL_LONG(op, Z_LVAL(holder)); \
230 (op) = &(holder); \
241 #define convert_object_to_type(op, dst, ctype, conv_func) \ argument
243 if (Z_OBJ_HT_P(op)->cast_object) { \
244 if (Z_OBJ_HT_P(op)->cast_object(op, dst, ctype) == FAILURE) { \
246 "Object of class %s could not be converted to %s", ZSTR_VAL(Z_OBJCE_P(op)->name),\
249 } else if (Z_OBJ_HT_P(op)->get) { \
250 zval *newop = Z_OBJ_HT_P(op)->get(op, dst); \
260 #define convert_op1_op2_long(op1, op1_lval, op2, op2_lval, result, op, op_func) \ argument
270 ZEND_TRY_BINARY_OP1_OBJECT_OPERATION(op, op_func); \
291 ZEND_TRY_BINARY_OP2_OBJECT_OPERATION(op); \
304 ZEND_API void ZEND_FASTCALL convert_to_long(zval *op) /* {{{ */ in convert_to_long() argument
306 if (Z_TYPE_P(op) != IS_LONG) { in convert_to_long()
307 convert_to_long_base(op, 10); in convert_to_long()
312 ZEND_API void ZEND_FASTCALL convert_to_long_base(zval *op, int base) /* {{{ */ in convert_to_long_base() argument
317 switch (Z_TYPE_P(op)) { in convert_to_long_base()
320 ZVAL_LONG(op, 0); in convert_to_long_base()
323 ZVAL_LONG(op, 1); in convert_to_long_base()
326 tmp = Z_RES_HANDLE_P(op); in convert_to_long_base()
327 zval_ptr_dtor(op); in convert_to_long_base()
328 ZVAL_LONG(op, tmp); in convert_to_long_base()
333 ZVAL_LONG(op, zend_dval_to_lval(Z_DVAL_P(op))); in convert_to_long_base()
337 zend_string *str = Z_STR_P(op); in convert_to_long_base()
339 ZVAL_LONG(op, zval_get_long(op)); in convert_to_long_base()
341 ZVAL_LONG(op, ZEND_STRTOL(ZSTR_VAL(str), NULL, base)); in convert_to_long_base()
347 tmp = (zend_hash_num_elements(Z_ARRVAL_P(op))?1:0); in convert_to_long_base()
348 zval_ptr_dtor(op); in convert_to_long_base()
349 ZVAL_LONG(op, tmp); in convert_to_long_base()
355 convert_object_to_type(op, &dst, IS_LONG, convert_to_long); in convert_to_long_base()
356 zval_dtor(op); in convert_to_long_base()
359 ZVAL_COPY_VALUE(op, &dst); in convert_to_long_base()
362 ZVAL_LONG(op, 1); in convert_to_long_base()
367 zend_unwrap_reference(op); in convert_to_long_base()
374 ZEND_API void ZEND_FASTCALL convert_to_double(zval *op) /* {{{ */ in convert_to_double() argument
379 switch (Z_TYPE_P(op)) { in convert_to_double()
382 ZVAL_DOUBLE(op, 0.0); in convert_to_double()
385 ZVAL_DOUBLE(op, 1.0); in convert_to_double()
388 double d = (double) Z_RES_HANDLE_P(op); in convert_to_double()
389 zval_ptr_dtor(op); in convert_to_double()
390 ZVAL_DOUBLE(op, d); in convert_to_double()
394 ZVAL_DOUBLE(op, (double) Z_LVAL_P(op)); in convert_to_double()
400 zend_string *str = Z_STR_P(op); in convert_to_double()
402 ZVAL_DOUBLE(op, zend_strtod(ZSTR_VAL(str), NULL)); in convert_to_double()
407 tmp = (zend_hash_num_elements(Z_ARRVAL_P(op))?1:0); in convert_to_double()
408 zval_ptr_dtor(op); in convert_to_double()
409 ZVAL_DOUBLE(op, tmp); in convert_to_double()
415 convert_object_to_type(op, &dst, IS_DOUBLE, convert_to_double); in convert_to_double()
416 zval_dtor(op); in convert_to_double()
419 ZVAL_COPY_VALUE(op, &dst); in convert_to_double()
421 ZVAL_DOUBLE(op, 1.0); in convert_to_double()
426 zend_unwrap_reference(op); in convert_to_double()
433 ZEND_API void ZEND_FASTCALL convert_to_null(zval *op) /* {{{ */ in convert_to_null() argument
435 zval_ptr_dtor(op); in convert_to_null()
436 ZVAL_NULL(op); in convert_to_null()
440 ZEND_API void ZEND_FASTCALL convert_to_boolean(zval *op) /* {{{ */ in convert_to_boolean() argument
445 switch (Z_TYPE_P(op)) { in convert_to_boolean()
450 ZVAL_FALSE(op); in convert_to_boolean()
453 zend_long l = (Z_RES_HANDLE_P(op) ? 1 : 0); in convert_to_boolean()
455 zval_ptr_dtor(op); in convert_to_boolean()
456 ZVAL_BOOL(op, l); in convert_to_boolean()
460 ZVAL_BOOL(op, Z_LVAL_P(op) ? 1 : 0); in convert_to_boolean()
463 ZVAL_BOOL(op, Z_DVAL_P(op) ? 1 : 0); in convert_to_boolean()
467 zend_string *str = Z_STR_P(op); in convert_to_boolean()
471 ZVAL_FALSE(op); in convert_to_boolean()
473 ZVAL_TRUE(op); in convert_to_boolean()
479 tmp = (zend_hash_num_elements(Z_ARRVAL_P(op))?1:0); in convert_to_boolean()
480 zval_ptr_dtor(op); in convert_to_boolean()
481 ZVAL_BOOL(op, tmp); in convert_to_boolean()
487 convert_object_to_type(op, &dst, _IS_BOOL, convert_to_boolean); in convert_to_boolean()
488 zval_dtor(op); in convert_to_boolean()
491 ZVAL_COPY_VALUE(op, &dst); in convert_to_boolean()
493 ZVAL_TRUE(op); in convert_to_boolean()
498 zend_unwrap_reference(op); in convert_to_boolean()
505 ZEND_API void ZEND_FASTCALL _convert_to_cstring(zval *op ZEND_FILE_LINE_DC) /* {{{ */ in _convert_to_cstring()
507 if (Z_TYPE_P(op) == IS_DOUBLE) { in _convert_to_cstring()
509 double dval = Z_DVAL_P(op); in _convert_to_cstring()
512 ZVAL_NEW_STR(op, str); in _convert_to_cstring()
514 _convert_to_string(op ZEND_FILE_LINE_CC); in _convert_to_cstring()
519 ZEND_API void ZEND_FASTCALL _convert_to_string(zval *op ZEND_FILE_LINE_DC) /* {{{ */ in _convert_to_string()
522 switch (Z_TYPE_P(op)) { in _convert_to_string()
526 ZVAL_EMPTY_STRING(op); in _convert_to_string()
530 ZVAL_INTERNED_STR(op, ZSTR_CHAR('1')); in _convert_to_string()
536 …int len = snprintf(buf, sizeof(buf), "Resource id #" ZEND_LONG_FMT, (zend_long)Z_RES_HANDLE_P(op)); in _convert_to_string()
537 zval_ptr_dtor(op); in _convert_to_string()
538 ZVAL_NEW_STR(op, zend_string_init(buf, len, 0)); in _convert_to_string()
542 ZVAL_STR(op, zend_long_to_str(Z_LVAL_P(op))); in _convert_to_string()
547 double dval = Z_DVAL_P(op); in _convert_to_string()
551 ZVAL_NEW_STR(op, str); in _convert_to_string()
556 zval_ptr_dtor(op); in _convert_to_string()
557 ZVAL_NEW_STR(op, zend_string_init("Array", sizeof("Array")-1, 0)); in _convert_to_string()
562 convert_object_to_type(op, &dst, IS_STRING, convert_to_string); in _convert_to_string()
563 zval_dtor(op); in _convert_to_string()
566 ZVAL_COPY_VALUE(op, &dst); in _convert_to_string()
568 ZVAL_NEW_STR(op, zend_string_init("Object", sizeof("Object")-1, 0)); in _convert_to_string()
573 zend_unwrap_reference(op); in _convert_to_string()
580 static void convert_scalar_to_array(zval *op) /* {{{ */ in convert_scalar_to_array() argument
584 ZVAL_COPY_VALUE(&entry, op); in convert_scalar_to_array()
586 ZVAL_NEW_ARR(op); in convert_scalar_to_array()
587 zend_hash_init(Z_ARRVAL_P(op), 8, NULL, ZVAL_PTR_DTOR, 0); in convert_scalar_to_array()
588 zend_hash_index_add_new(Z_ARRVAL_P(op), 0, &entry); in convert_scalar_to_array()
592 ZEND_API void ZEND_FASTCALL convert_to_array(zval *op) /* {{{ */ in convert_to_array() argument
595 switch (Z_TYPE_P(op)) { in convert_to_array()
600 if (Z_OBJCE_P(op) == zend_ce_closure) { in convert_to_array()
601 convert_scalar_to_array(op); in convert_to_array()
603 if (Z_OBJ_HT_P(op)->get_properties) { in convert_to_array()
604 HashTable *obj_ht = Z_OBJ_HT_P(op)->get_properties(op); in convert_to_array()
609 if (!Z_OBJCE_P(op)->default_properties_count && in convert_to_array()
610 obj_ht == Z_OBJ_P(op)->properties && in convert_to_array()
611 !ZEND_HASH_GET_APPLY_COUNT(Z_OBJ_P(op)->properties) && in convert_to_array()
612 EXPECTED(Z_OBJ_P(op)->handlers == &std_object_handlers)) { in convert_to_array()
617 zval_dtor(op); in convert_to_array()
618 ZVAL_ARR(op, arr); in convert_to_array()
623 convert_object_to_type(op, &dst, IS_ARRAY, convert_to_array); in convert_to_array()
626 zval_dtor(op); in convert_to_array()
627 ZVAL_COPY_VALUE(op, &dst); in convert_to_array()
632 zval_dtor(op); in convert_to_array()
633 array_init(op); in convert_to_array()
637 ZVAL_NEW_ARR(op); in convert_to_array()
638 zend_hash_init(Z_ARRVAL_P(op), 8, NULL, ZVAL_PTR_DTOR, 0); in convert_to_array()
641 zend_unwrap_reference(op); in convert_to_array()
644 convert_scalar_to_array(op); in convert_to_array()
650 ZEND_API void ZEND_FASTCALL convert_to_object(zval *op) /* {{{ */ in convert_to_object() argument
653 switch (Z_TYPE_P(op)) { in convert_to_object()
656 HashTable *ht = Z_ARR_P(op); in convert_to_object()
662 zval_dtor(op); in convert_to_object()
663 object_and_properties_init(op, zend_standard_class_def, ht); in convert_to_object()
669 object_init(op); in convert_to_object()
672 zend_unwrap_reference(op); in convert_to_object()
676 ZVAL_COPY_VALUE(&tmp, op); in convert_to_object()
677 object_init(op); in convert_to_object()
678 zend_hash_add_new(Z_OBJPROP_P(op), ZSTR_KNOWN(ZEND_STR_SCALAR), &tmp); in convert_to_object()
733 static zend_always_inline zend_long ZEND_FASTCALL _zval_get_long_func_ex(zval *op, zend_bool silent… in _zval_get_long_func_ex() argument
736 switch (Z_TYPE_P(op)) { in _zval_get_long_func_ex()
744 return Z_RES_HANDLE_P(op); in _zval_get_long_func_ex()
746 return Z_LVAL_P(op); in _zval_get_long_func_ex()
748 return zend_dval_to_lval(Z_DVAL_P(op)); in _zval_get_long_func_ex()
754 …if (0 == (type = is_numeric_string(Z_STRVAL_P(op), Z_STRLEN_P(op), &lval, &dval, silent ? 1 : -1))… in _zval_get_long_func_ex()
771 return zend_hash_num_elements(Z_ARRVAL_P(op)) ? 1 : 0; in _zval_get_long_func_ex()
775 convert_object_to_type(op, &dst, IS_LONG, convert_to_long); in _zval_get_long_func_ex()
783 op = Z_REFVAL_P(op); in _zval_get_long_func_ex()
791 ZEND_API zend_long ZEND_FASTCALL _zval_get_long_func(zval *op) /* {{{ */ in _zval_get_long_func() argument
793 return _zval_get_long_func_ex(op, 1); in _zval_get_long_func()
797 static zend_long ZEND_FASTCALL _zval_get_long_func_noisy(zval *op) /* {{{ */ in _zval_get_long_func_noisy() argument
799 return _zval_get_long_func_ex(op, 0); in _zval_get_long_func_noisy()
803 ZEND_API double ZEND_FASTCALL _zval_get_double_func(zval *op) /* {{{ */ in _zval_get_double_func() argument
806 switch (Z_TYPE_P(op)) { in _zval_get_double_func()
813 return (double) Z_RES_HANDLE_P(op); in _zval_get_double_func()
815 return (double) Z_LVAL_P(op); in _zval_get_double_func()
817 return Z_DVAL_P(op); in _zval_get_double_func()
819 return zend_strtod(Z_STRVAL_P(op), NULL); in _zval_get_double_func()
821 return zend_hash_num_elements(Z_ARRVAL_P(op)) ? 1.0 : 0.0; in _zval_get_double_func()
825 convert_object_to_type(op, &dst, IS_DOUBLE, convert_to_double); in _zval_get_double_func()
834 op = Z_REFVAL_P(op); in _zval_get_double_func()
842 ZEND_API zend_string* ZEND_FASTCALL _zval_get_string_func(zval *op) /* {{{ */ in _zval_get_string_func() argument
845 switch (Z_TYPE_P(op)) { in _zval_get_string_func()
856 len = snprintf(buf, sizeof(buf), "Resource id #" ZEND_LONG_FMT, (zend_long)Z_RES_HANDLE_P(op)); in _zval_get_string_func()
860 return zend_long_to_str(Z_LVAL_P(op)); in _zval_get_string_func()
863 return zend_strpprintf(0, "%.*G", (int) EG(precision), Z_DVAL_P(op)); in _zval_get_string_func()
870 if (Z_OBJ_HT_P(op)->cast_object) { in _zval_get_string_func()
871 if (Z_OBJ_HT_P(op)->cast_object(op, &tmp, IS_STRING) == SUCCESS) { in _zval_get_string_func()
874 } else if (Z_OBJ_HT_P(op)->get) { in _zval_get_string_func()
875 zval *z = Z_OBJ_HT_P(op)->get(op, &tmp); in _zval_get_string_func()
883 …RABLE_ERROR, "Object of class %s could not be converted to string", ZSTR_VAL(Z_OBJCE_P(op)->name)); in _zval_get_string_func()
887 op = Z_REFVAL_P(op); in _zval_get_string_func()
890 return zend_string_copy(Z_STR_P(op)); in _zval_get_string_func()
1891 static inline void zend_free_obj_get_result(zval *op) /* {{{ */ in zend_free_obj_get_result() argument
1893 if (Z_REFCOUNTED_P(op)) { in zend_free_obj_get_result()
1894 if (Z_REFCOUNT_P(op) == 0) { in zend_free_obj_get_result()
1895 zval_dtor(op); in zend_free_obj_get_result()
1897 zval_ptr_dtor(op); in zend_free_obj_get_result()
2502 ZEND_API int ZEND_FASTCALL zend_is_true(zval *op) /* {{{ */ in zend_is_true() argument
2504 return i_zend_is_true(op); in zend_is_true()
2508 ZEND_API int ZEND_FASTCALL zend_object_is_true(zval *op) /* {{{ */ in zend_object_is_true() argument
2510 if (Z_OBJ_HT_P(op)->cast_object) { in zend_object_is_true()
2512 if (Z_OBJ_HT_P(op)->cast_object(op, &tmp, _IS_BOOL) == SUCCESS) { in zend_object_is_true()
2515 …LE_ERROR, "Object of class %s could not be converted to boolean", ZSTR_VAL(Z_OBJ_P(op)->ce->name)); in zend_object_is_true()
2516 } else if (Z_OBJ_HT_P(op)->get) { in zend_object_is_true()
2519 zval *tmp = Z_OBJ_HT_P(op)->get(op, &rv); in zend_object_is_true()
2859 ZEND_API void ZEND_FASTCALL zend_locale_sprintf_double(zval *op ZEND_FILE_LINE_DC) /* {{{ */
2863 str = zend_strpprintf(0, "%.*G", (int) EG(precision), (double)Z_DVAL_P(op));
2864 ZVAL_NEW_STR(op, str);