@@ -59,16 +59,11 @@ static zend_function_entry msgpack_functions[] = {
59
59
{NULL , NULL , NULL }
60
60
};
61
61
62
- static void msgpack_init_globals (zend_msgpack_globals * msgpack_globals )
62
+ static void msgpack_init_globals (zend_msgpack_globals * msgpack_globals ) /* {{{ */
63
63
{
64
- TSRMLS_FETCH ();
65
-
66
- if (PG (display_errors ))
67
- {
64
+ if (PG (display_errors )) {
68
65
msgpack_globals -> error_display = 1 ;
69
- }
70
- else
71
- {
66
+ } else {
72
67
msgpack_globals -> error_display = 0 ;
73
68
}
74
69
@@ -78,9 +73,9 @@ static void msgpack_init_globals(zend_msgpack_globals *msgpack_globals)
78
73
msgpack_globals -> serialize .var_hash = NULL ;
79
74
msgpack_globals -> serialize .level = 0 ;
80
75
}
76
+ /* }}} */
81
77
82
- static ZEND_MINIT_FUNCTION (msgpack )
83
- {
78
+ static ZEND_MINIT_FUNCTION (msgpack ) /* {{{ */ {
84
79
ZEND_INIT_MODULE_GLOBALS (msgpack , msgpack_init_globals , NULL );
85
80
86
81
REGISTER_INI_ENTRIES ();
@@ -98,16 +93,16 @@ static ZEND_MINIT_FUNCTION(msgpack)
98
93
99
94
return SUCCESS ;
100
95
}
96
+ /* }}} */
101
97
102
- static ZEND_MSHUTDOWN_FUNCTION (msgpack )
103
- {
98
+ static ZEND_MSHUTDOWN_FUNCTION (msgpack ) /* {{{ */ {
104
99
UNREGISTER_INI_ENTRIES ();
105
100
106
101
return SUCCESS ;
107
102
}
103
+ /* }}} */
108
104
109
- static ZEND_MINFO_FUNCTION (msgpack )
110
- {
105
+ static ZEND_MINFO_FUNCTION (msgpack ) /* {{{ */ {
111
106
php_info_print_table_start ();
112
107
php_info_print_table_row (2 , "MessagePack Support" , "enabled" );
113
108
#if HAVE_PHP_SESSION
@@ -119,6 +114,7 @@ static ZEND_MINFO_FUNCTION(msgpack)
119
114
120
115
DISPLAY_INI_ENTRIES ();
121
116
}
117
+ /* }}} */
122
118
123
119
zend_module_entry msgpack_module_entry = {
124
120
STANDARD_MODULE_HEADER ,
@@ -138,30 +134,29 @@ ZEND_GET_MODULE(msgpack)
138
134
#endif
139
135
140
136
#if HAVE_PHP_SESSION
141
- PS_SERIALIZER_ENCODE_FUNC (msgpack )
137
+ PS_SERIALIZER_ENCODE_FUNC (msgpack ) /* {{{ */
142
138
{
143
- smart_string buf = {0 };
144
- zend_string * z_string ;
139
+ smart_str buf = {0 };
145
140
msgpack_serialize_data_t var_hash ;
146
141
147
142
msgpack_serialize_var_init (& var_hash );
148
- msgpack_serialize_zval (& buf , & PS (http_session_vars ), var_hash );
143
+ msgpack_serialize_zval (& buf , & PS (http_session_vars ), var_hash );
149
144
msgpack_serialize_var_destroy (& var_hash );
150
145
151
- z_string = zend_string_init (buf .c , buf .len , 0 );
152
- smart_string_free (& buf );
146
+ smart_str_0 (& buf );
153
147
154
- return z_string ;
148
+ return buf . s ;
155
149
}
156
150
157
- PS_SERIALIZER_DECODE_FUNC (msgpack )
158
- {
151
+ /* }}} */
152
+
153
+ PS_SERIALIZER_DECODE_FUNC (msgpack ) /* {{{ */ {
159
154
int ret ;
160
155
zend_string * key_str ;
161
156
zval tmp , * value ;
162
- size_t off = 0 ;
163
157
msgpack_unpack_t mp ;
164
158
msgpack_unserialize_data_t var_hash ;
159
+ size_t off = 0 ;
165
160
166
161
template_init (& mp );
167
162
@@ -182,30 +177,28 @@ PS_SERIALIZER_DECODE_FUNC(msgpack)
182
177
php_add_session_var (key_str );
183
178
}
184
179
} ZEND_HASH_FOREACH_END ();
180
+
185
181
zval_ptr_dtor (& tmp );
186
182
} else {
187
183
msgpack_unserialize_var_destroy (& var_hash , 1 );
188
184
}
189
185
190
186
return SUCCESS ;
191
187
}
188
+ /* }}} */
192
189
#endif
193
190
194
- PHP_MSGPACK_API void php_msgpack_serialize (smart_string * buf , zval * val TSRMLS_DC )
195
- {
191
+ PHP_MSGPACK_API void php_msgpack_serialize (smart_str * buf , zval * val ) /* {{{ */ {
196
192
197
193
msgpack_serialize_data_t var_hash ;
198
194
199
195
msgpack_serialize_var_init (& var_hash );
200
-
201
- msgpack_serialize_zval (buf , val , var_hash TSRMLS_CC );
202
-
196
+ msgpack_serialize_zval (buf , val , var_hash );
203
197
msgpack_serialize_var_destroy (& var_hash );
204
198
}
199
+ /* }}} */
205
200
206
- PHP_MSGPACK_API void php_msgpack_unserialize (
207
- zval * return_value , char * str , size_t str_len TSRMLS_DC )
208
- {
201
+ PHP_MSGPACK_API void php_msgpack_unserialize ( zval * return_value , char * str , size_t str_len ) /* {{{ */ {
209
202
int ret ;
210
203
size_t off = 0 ;
211
204
msgpack_unpack_t mp ;
@@ -234,8 +227,8 @@ PHP_MSGPACK_API void php_msgpack_unserialize(
234
227
MSGPACK_WARNING ("[msgpack] (%s) Parse error" , __FUNCTION__ );
235
228
break ;
236
229
case MSGPACK_UNPACK_CONTINUE :
230
+ msgpack_unserialize_set_return_value (& var_hash , return_value );
237
231
msgpack_unserialize_var_destroy (& var_hash , 0 );
238
- ZVAL_FALSE (return_value );
239
232
MSGPACK_WARNING (
240
233
"[msgpack] (%s) Insufficient data for unserializing" ,
241
234
__FUNCTION__ );
@@ -256,29 +249,33 @@ PHP_MSGPACK_API void php_msgpack_unserialize(
256
249
break ;
257
250
}
258
251
}
252
+ /* }}} */
259
253
260
- static ZEND_FUNCTION (msgpack_serialize )
261
- {
254
+ static ZEND_FUNCTION (msgpack_serialize ) /* {{{ */ {
262
255
zval * parameter ;
263
- smart_string buf = {0 };
256
+ smart_str buf = {0 };
264
257
265
- if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "z" , & parameter ) == FAILURE ) {
258
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "z" , & parameter ) == FAILURE ) {
266
259
return ;
267
260
}
268
261
269
- php_msgpack_serialize (& buf , parameter TSRMLS_CC );
270
- smart_string_0 (& buf );
262
+ php_msgpack_serialize (& buf , parameter );
263
+
264
+ if (buf .s ) {
265
+ smart_str_0 (& buf );
266
+ ZVAL_STR (return_value , buf .s );
267
+ } else {
268
+ RETURN_EMPTY_STRING ();
269
+ }
271
270
272
- ZVAL_STRINGL (return_value , buf .c , buf .len );
273
- smart_string_free (& buf );
274
271
}
272
+ /* }}} */
275
273
276
- static ZEND_FUNCTION (msgpack_unserialize )
277
- {
274
+ static ZEND_FUNCTION (msgpack_unserialize ) /* {{{ */ {
278
275
zend_string * str ;
279
276
zval * object = NULL ;
280
277
281
- if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "S|z" , & str , & object ) == FAILURE ) {
278
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "S|z" , & str , & object ) == FAILURE ) {
282
279
return ;
283
280
}
284
281
@@ -289,14 +286,22 @@ static ZEND_FUNCTION(msgpack_unserialize)
289
286
if (object == NULL ) {
290
287
php_msgpack_unserialize (return_value , str -> val , str -> len );
291
288
} else {
292
- zval zv , * zv_p ;
293
- zv_p = & zv ;
294
-
289
+ zval zv ;
295
290
php_msgpack_unserialize (& zv , str -> val , str -> len );
296
291
297
- if (msgpack_convert_template (return_value , object , & zv_p ) != SUCCESS ) {
298
- RETURN_NULL ();
292
+ if (msgpack_convert_template (return_value , object , & zv ) != SUCCESS ) {
293
+ RETVAL_NULL ();
299
294
}
300
-
295
+ zval_ptr_dtor ( & zv );
301
296
}
302
297
}
298
+ /* }}} */
299
+
300
+ /*
301
+ * Local variables:
302
+ * tab-width: 4
303
+ * c-basic-offset: 4
304
+ * End:
305
+ * vim600: noet sw=4 ts=4 fdm=marker
306
+ * vim<600: noet sw=4 ts=4
307
+ */
0 commit comments