@@ -491,49 +491,28 @@ static void _build_trace_args(zval *arg, smart_str *str) /* {{{ */
491
491
*/
492
492
493
493
ZVAL_DEREF (arg );
494
- switch (Z_TYPE_P (arg )) {
495
- case IS_NULL :
496
- smart_str_appends (str , "NULL, " );
497
- break ;
498
- case IS_STRING :
499
- smart_str_appendc (str , '\'' );
500
- smart_str_append_escaped (str , Z_STRVAL_P (arg ), MIN (Z_STRLEN_P (arg ), EG (exception_string_param_max_len )));
501
- if (Z_STRLEN_P (arg ) > EG (exception_string_param_max_len )) {
502
- smart_str_appends (str , "...', " );
503
- } else {
504
- smart_str_appends (str , "', " );
494
+
495
+ if (Z_TYPE_P (arg ) <= IS_STRING ) {
496
+ smart_str_append_scalar (str , arg , EG (exception_string_param_max_len ));
497
+ smart_str_appends (str , ", " );
498
+ } else {
499
+ switch (Z_TYPE_P (arg )) {
500
+ case IS_RESOURCE :
501
+ smart_str_appends (str , "Resource id #" );
502
+ smart_str_append_long (str , Z_RES_HANDLE_P (arg ));
503
+ smart_str_appends (str , ", " );
504
+ break ;
505
+ case IS_ARRAY :
506
+ smart_str_appends (str , "Array, " );
507
+ break ;
508
+ case IS_OBJECT : {
509
+ zend_string * class_name = Z_OBJ_HANDLER_P (arg , get_class_name )(Z_OBJ_P (arg ));
510
+ smart_str_appends (str , "Object(" );
511
+ smart_str_appends (str , ZSTR_VAL (class_name ));
512
+ smart_str_appends (str , "), " );
513
+ zend_string_release_ex (class_name , 0 );
514
+ break ;
505
515
}
506
- break ;
507
- case IS_FALSE :
508
- smart_str_appends (str , "false, " );
509
- break ;
510
- case IS_TRUE :
511
- smart_str_appends (str , "true, " );
512
- break ;
513
- case IS_RESOURCE :
514
- smart_str_appends (str , "Resource id #" );
515
- smart_str_append_long (str , Z_RES_HANDLE_P (arg ));
516
- smart_str_appends (str , ", " );
517
- break ;
518
- case IS_LONG :
519
- smart_str_append_long (str , Z_LVAL_P (arg ));
520
- smart_str_appends (str , ", " );
521
- break ;
522
- case IS_DOUBLE :
523
- smart_str_append_double (
524
- str , Z_DVAL_P (arg ), (int ) EG (precision ), /* zero_fraction */ false);
525
- smart_str_appends (str , ", " );
526
- break ;
527
- case IS_ARRAY :
528
- smart_str_appends (str , "Array, " );
529
- break ;
530
- case IS_OBJECT : {
531
- zend_string * class_name = Z_OBJ_HANDLER_P (arg , get_class_name )(Z_OBJ_P (arg ));
532
- smart_str_appends (str , "Object(" );
533
- smart_str_appends (str , ZSTR_VAL (class_name ));
534
- smart_str_appends (str , "), " );
535
- zend_string_release_ex (class_name , 0 );
536
- break ;
537
516
}
538
517
}
539
518
}
0 commit comments