@@ -990,30 +990,22 @@ int php_wddx_deserialize_ex(char *value, int vallen, zval *return_value)
990
990
Creates a new packet and serializes the given value */
991
991
PHP_FUNCTION (wddx_serialize_value )
992
992
{
993
- int argc ;
994
- zval * * var ,
995
- * * comment ;
993
+ zval * var ;
994
+ char * comment = NULL ;
995
+ int comment_len = 0 ;
996
996
wddx_packet * packet ;
997
997
998
- argc = ZEND_NUM_ARGS ();
999
- if (argc < 1 || argc > 2 || zend_get_parameters_ex (argc , & var , & comment ) == FAILURE ) {
1000
- WRONG_PARAM_COUNT ;
1001
- }
998
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "z|s" ,
999
+ & var , & comment , & comment_len ) == FAILURE )
1000
+ return ;
1002
1001
1003
1002
packet = php_wddx_constructor ();
1004
1003
if (!packet ) {
1005
1004
RETURN_FALSE ;
1006
1005
}
1007
1006
1008
- if (argc == 2 )
1009
- {
1010
- convert_to_string_ex (comment );
1011
- php_wddx_packet_start (packet , Z_STRVAL_PP (comment ), Z_STRLEN_PP (comment ));
1012
- }
1013
- else
1014
- php_wddx_packet_start (packet , NULL , 0 );
1015
-
1016
- php_wddx_serialize_var (packet , (* var ), NULL , 0 );
1007
+ php_wddx_packet_start (packet , comment , comment_len );
1008
+ php_wddx_serialize_var (packet , var , NULL , 0 );
1017
1009
php_wddx_packet_end (packet );
1018
1010
1019
1011
ZVAL_STRINGL (return_value , packet -> c , packet -> len , 1 );
@@ -1031,6 +1023,12 @@ PHP_FUNCTION(wddx_serialize_vars)
1031
1023
zval * * * args ;
1032
1024
1033
1025
argc = ZEND_NUM_ARGS ();
1026
+ if (argc < 1 ) {
1027
+ php_error (E_WARNING , "%s() requires at least 1 argument, 0 given" ,
1028
+ get_active_function_name ());
1029
+ return ;
1030
+ }
1031
+
1034
1032
/* Allocate arguments array and get the arguments, checking for errors. */
1035
1033
args = (zval * * * )emalloc (argc * sizeof (zval * * ));
1036
1034
if (zend_get_parameters_array_ex (argc , args ) == FAILURE ) {
@@ -1089,28 +1087,21 @@ void php_wddx_destructor(wddx_packet *packet)
1089
1087
Starts a WDDX packet with optional comment and returns the packet id */
1090
1088
PHP_FUNCTION (wddx_packet_start )
1091
1089
{
1092
- int argc ;
1093
- zval * * comment ;
1090
+ char * comment = NULL ;
1091
+ int comment_len = 0 ;
1094
1092
wddx_packet * packet ;
1095
1093
1096
1094
comment = NULL ;
1097
- argc = ZEND_NUM_ARGS ();
1098
1095
1099
- if (argc > 1 || (argc == 1 && zend_get_parameters_ex (1 , & comment )== FAILURE )) {
1100
- WRONG_PARAM_COUNT ;
1101
- }
1096
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "|s" , & comment , & comment_len ) == FAILURE )
1097
+ return ;
1102
1098
1103
1099
packet = php_wddx_constructor ();
1104
1100
if (!packet ) {
1105
1101
RETURN_FALSE ;
1106
1102
}
1107
1103
1108
- if (argc == 1 ) {
1109
- convert_to_string_ex (comment );
1110
- php_wddx_packet_start (packet , Z_STRVAL_PP (comment ), Z_STRLEN_PP (comment ));
1111
- } else
1112
- php_wddx_packet_start (packet , NULL , 0 );
1113
-
1104
+ php_wddx_packet_start (packet , comment , comment_len );
1114
1105
php_wddx_add_chunk_static (packet , WDDX_STRUCT_S );
1115
1106
1116
1107
ZEND_REGISTER_RESOURCE (return_value , packet , le_wddx );
@@ -1121,26 +1112,25 @@ PHP_FUNCTION(wddx_packet_start)
1121
1112
Ends specified WDDX packet and returns the string containing the packet */
1122
1113
PHP_FUNCTION (wddx_packet_end )
1123
1114
{
1124
- zval * * packet_id ;
1115
+ zval * packet_id ;
1125
1116
wddx_packet * packet = NULL ;
1126
1117
1127
- if (ZEND_NUM_ARGS ()!= 1 || zend_get_parameters_ex (1 , & packet_id )== FAILURE ) {
1128
- WRONG_PARAM_COUNT ;
1129
- }
1118
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "r" , & packet_id ) == FAILURE )
1119
+ return ;
1130
1120
1131
- ZEND_FETCH_RESOURCE (packet , wddx_packet * , packet_id , -1 , "WDDX packet ID" , le_wddx );
1121
+ ZEND_FETCH_RESOURCE (packet , wddx_packet * , & packet_id , -1 , "WDDX packet ID" , le_wddx );
1132
1122
1133
1123
php_wddx_add_chunk_static (packet , WDDX_STRUCT_E );
1134
1124
1135
1125
php_wddx_packet_end (packet );
1136
1126
1137
1127
ZVAL_STRINGL (return_value , packet -> c , packet -> len , 1 );
1138
1128
1139
- zend_list_delete (Z_LVAL_PP (packet_id ));
1129
+ zend_list_delete (Z_LVAL_P (packet_id ));
1140
1130
}
1141
1131
/* }}} */
1142
1132
1143
- /* {{{ proto int wddx_add_vars(int packet_id [, mixed var_names [, mixed ...] ])
1133
+ /* {{{ proto int wddx_add_vars(int packet_id, mixed var_names [, mixed ...])
1144
1134
Serializes given variables and adds them to packet given by packet_id */
1145
1135
PHP_FUNCTION (wddx_add_vars )
1146
1136
{
@@ -1151,7 +1141,9 @@ PHP_FUNCTION(wddx_add_vars)
1151
1141
1152
1142
argc = ZEND_NUM_ARGS ();
1153
1143
if (argc < 2 ) {
1154
- WRONG_PARAM_COUNT ;
1144
+ php_error (E_WARNING , "%s() requires at least 2 arguments, %d given" ,
1145
+ get_active_function_name (), ZEND_NUM_ARGS ());
1146
+ return ;
1155
1147
}
1156
1148
1157
1149
/* Allocate arguments array and get the arguments, checking for errors. */
@@ -1185,17 +1177,16 @@ PHP_FUNCTION(wddx_add_vars)
1185
1177
Deserializes given packet and returns a PHP value */
1186
1178
PHP_FUNCTION (wddx_deserialize )
1187
1179
{
1188
- zval * * packet ;
1180
+ char * packet ;
1181
+ int packet_len ;
1189
1182
1190
- if (ZEND_NUM_ARGS ()!= 1 || zend_get_parameters_ex (1 , & packet ) == FAILURE ) {
1191
- WRONG_PARAM_COUNT ;
1192
- }
1183
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "s" , & packet , & packet_len ) == FAILURE )
1184
+ return ;
1193
1185
1194
- convert_to_string_ex (packet );
1195
- if (Z_STRLEN_PP (packet ) == 0 )
1186
+ if (packet_len == 0 )
1196
1187
return ;
1197
1188
1198
- php_wddx_deserialize ( * packet , return_value );
1189
+ php_wddx_deserialize_ex ( packet , packet_len , return_value );
1199
1190
}
1200
1191
/* }}} */
1201
1192
0 commit comments