@@ -44,21 +44,25 @@ static int le_variant;
44
44
static int codepage ;
45
45
static zend_class_entry VARIANT_class_entry ;
46
46
47
+
47
48
function_entry VARIANT_functions [] = {
48
49
{NULL , NULL , NULL }
49
50
};
50
51
52
+
51
53
static PHP_MINFO_FUNCTION (VARIANT )
52
54
{
53
55
php_info_print_table_start ();
54
56
php_info_print_table_row (2 , "VARIANT support" , "enabled" );
55
57
php_info_print_table_end ();
56
58
}
57
59
60
+
58
61
zend_module_entry VARIANT_module_entry = {
59
62
"variant" , VARIANT_functions , PHP_MINIT (VARIANT ), PHP_MSHUTDOWN (VARIANT ), NULL , NULL , PHP_MINFO (VARIANT ), STANDARD_MODULE_PROPERTIES
60
63
};
61
64
65
+
62
66
PHP_MINIT_FUNCTION (VARIANT )
63
67
{
64
68
le_variant = zend_register_list_destructors_ex (php_VARIANT_destructor , NULL , "VARIANT" , module_number );
@@ -109,60 +113,60 @@ PHP_MINIT_FUNCTION(VARIANT)
109
113
return SUCCESS ;
110
114
}
111
115
116
+
112
117
PHP_MSHUTDOWN_FUNCTION (VARIANT )
113
118
{
114
119
return SUCCESS ;
115
120
}
116
121
122
+
117
123
PHPAPI int php_VARIANT_get_le_variant ()
118
124
{
119
125
return le_variant ;
120
126
}
121
127
128
+
122
129
static void php_VARIANT_call_function_handler (INTERNAL_FUNCTION_PARAMETERS , zend_property_reference * property_reference )
123
130
{
124
131
pval * object = property_reference -> object ;
125
132
zend_overloaded_element * function_name = (zend_overloaded_element * ) property_reference -> elements_list -> tail -> data ;
126
133
VARIANT * pVar ;
127
134
128
- if ((zend_llist_count (property_reference -> elements_list )== 1 ) && !strcmp (Z_STRVAL (function_name -> element ), "variant" ))
129
- {
135
+ if ((zend_llist_count (property_reference -> elements_list )== 1 ) && !strcmp (Z_STRVAL (function_name -> element ), "variant" )) {
130
136
/* constructor */
131
137
pval * object_handle , * data , * type , * code_page ;
132
138
133
139
ALLOC_VARIANT (pVar );
134
140
VariantInit (pVar );
135
141
136
- switch (ZEND_NUM_ARGS ())
137
- {
142
+ switch (ZEND_NUM_ARGS ()) {
138
143
case 0 :
139
144
/* nothing to do */
140
145
break ;
141
146
case 1 :
142
- getParameters (ht , 1 , & data );
147
+ zend_get_parameters (ht , 1 , & data );
143
148
php_pval_to_variant (data , pVar , codepage TSRMLS_CC );
144
149
codepage = CP_ACP ;
145
150
break ;
146
151
case 2 :
147
- getParameters (ht , 2 , & data , & type );
152
+ zend_get_parameters (ht , 2 , & data , & type );
148
153
php_pval_to_variant_ex (data , pVar , type , codepage TSRMLS_CC );
149
154
codepage = CP_ACP ;
150
155
break ;
151
156
case 3 :
152
- getParameters (ht , 3 , & data , & type , & code_page );
157
+ zend_get_parameters (ht , 3 , & data , & type , & code_page );
153
158
php_pval_to_variant_ex (data , pVar , type , codepage TSRMLS_CC );
154
159
convert_to_long (code_page );
155
160
codepage = code_page -> value .lval ;
156
161
break ;
157
162
default :
158
- WRONG_PARAM_COUNT ;
163
+ ZEND_WRONG_PARAM_COUNT () ;
159
164
break ;
160
165
}
161
166
162
167
RETVAL_LONG (zend_list_insert (pVar , IS_VARIANT ));
163
168
164
- if (!zend_is_true (return_value ))
165
- {
169
+ if (!zend_is_true (return_value )) {
166
170
ZVAL_FALSE (object );
167
171
return ;
168
172
}
@@ -176,43 +180,35 @@ static void php_VARIANT_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, zend
176
180
}
177
181
}
178
182
183
+
179
184
static pval php_VARIANT_get_property_handler (zend_property_reference * property_reference )
180
185
{
181
186
zend_overloaded_element * overloaded_property ;
182
187
int type ;
183
- TSRMLS_FETCH ();
184
-
185
188
pval result , * * var_handle , * object = property_reference -> object ;
186
189
VARIANT * var_arg ;
190
+ TSRMLS_FETCH ();
191
+
187
192
188
193
/* fetch the VARIANT structure */
189
194
zend_hash_index_find (Z_OBJPROP_P (object ), 0 , (void * * ) & var_handle );
190
195
var_arg = zend_list_find (Z_LVAL_PP (var_handle ), & type );
191
196
192
- if (!var_arg || (type != IS_VARIANT ))
193
- {
197
+ if (!var_arg || (type != IS_VARIANT )) {
194
198
ZVAL_FALSE (& result );
195
- }
196
- else
197
- {
199
+ } else {
198
200
overloaded_property = (zend_overloaded_element * ) property_reference -> elements_list -> head -> data ;
199
- switch (overloaded_property -> type )
200
- {
201
+ switch (overloaded_property -> type ) {
201
202
case OE_IS_ARRAY :
202
203
ZVAL_FALSE (& result );
203
204
break ;
204
205
205
206
case OE_IS_OBJECT :
206
- if (!strcmp (overloaded_property -> element .value .str .val , "value" ))
207
- {
208
- php_variant_to_pval (var_arg , & result , 0 , codepage TSRMLS_CC );
209
- }
210
- else if (!strcmp (Z_STRVAL (overloaded_property -> element ), "type" ))
211
- {
207
+ if (!strcmp (overloaded_property -> element .value .str .val , "value" )) {
208
+ php_variant_to_pval (var_arg , & result , codepage TSRMLS_CC );
209
+ } else if (!strcmp (Z_STRVAL (overloaded_property -> element ), "type" )) {
212
210
ZVAL_LONG (& result , V_VT (var_arg ))
213
- }
214
- else
215
- {
211
+ } else {
216
212
ZVAL_FALSE (& result );
217
213
php_error (E_WARNING , "Unknown member." );
218
214
}
@@ -229,192 +225,116 @@ static pval php_VARIANT_get_property_handler(zend_property_reference *property_r
229
225
return result ;
230
226
}
231
227
228
+
232
229
static int php_VARIANT_set_property_handler (zend_property_reference * property_reference , pval * value )
233
230
{
234
231
zend_overloaded_element * overloaded_property ;
235
232
int type ;
236
- TSRMLS_FETCH ();
237
-
238
233
pval * * var_handle , * object = property_reference -> object ;
239
234
VARIANT * var_arg ;
235
+ TSRMLS_FETCH ();
236
+
240
237
241
238
/* fetch the VARIANT structure */
242
239
zend_hash_index_find (Z_OBJPROP_P (object ), 0 , (void * * ) & var_handle );
243
240
var_arg = zend_list_find (Z_LVAL_PP (var_handle ), & type );
244
241
245
- if (!var_arg || (type != IS_VARIANT ))
242
+ if (!var_arg || (type != IS_VARIANT )) {
246
243
return FAILURE ;
244
+ }
247
245
248
246
overloaded_property = (zend_overloaded_element * ) property_reference -> elements_list -> head -> data ;
249
247
do_VARIANT_propset (var_arg , & overloaded_property -> element , value TSRMLS_CC );
250
248
zval_dtor (& overloaded_property -> element );
251
249
return SUCCESS ;
252
250
}
253
251
252
+
254
253
static int do_VARIANT_propset (VARIANT * var_arg , pval * arg_property , pval * value TSRMLS_DC )
255
254
{
256
255
pval type ;
257
256
258
257
Z_TYPE (type ) = IS_STRING ;
259
258
260
- if (!strcmp (Z_STRVAL_P (arg_property ), "bVal" ))
261
- {
259
+ if (!strcmp (Z_STRVAL_P (arg_property ), "bVal" )) {
262
260
Z_LVAL (type ) = VT_UI1 ;
263
- }
264
- else if (!strcmp (Z_STRVAL_P (arg_property ), "iVal" ))
265
- {
261
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "iVal" )) {
266
262
Z_LVAL (type ) = VT_I2 ;
267
- }
268
- else if (!strcmp (Z_STRVAL_P (arg_property ), "lVal" ))
269
- {
263
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "lVal" )) {
270
264
Z_LVAL (type ) = VT_I4 ;
271
- }
272
- else if (!strcmp (Z_STRVAL_P (arg_property ), "fltVal" ))
273
- {
265
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "fltVal" )) {
274
266
Z_LVAL (type ) = VT_R4 ;
275
- }
276
- else if (!strcmp (Z_STRVAL_P (arg_property ), "dblVal" ))
277
- {
267
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "dblVal" )) {
278
268
Z_LVAL (type ) = VT_R8 ;
279
- }
280
- else if (!strcmp (Z_STRVAL_P (arg_property ), "boolVal" ))
281
- {
269
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "boolVal" )) {
282
270
Z_LVAL (type ) = VT_BOOL ;
283
- }
284
- else if (!strcmp (Z_STRVAL_P (arg_property ), "scode" ))
285
- {
271
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "scode" )) {
286
272
Z_LVAL (type ) = VT_ERROR ;
287
- }
288
- else if (!strcmp (Z_STRVAL_P (arg_property ), "cyVal" ))
289
- {
273
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "cyVal" )) {
290
274
Z_LVAL (type ) = VT_CY ;
291
- }
292
- else if (!strcmp (Z_STRVAL_P (arg_property ), "date" ))
293
- {
275
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "date" )) {
294
276
Z_LVAL (type ) = VT_DATE ;
295
- }
296
- else if (!strcmp (Z_STRVAL_P (arg_property ), "bstrVal" ))
297
- {
277
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "bstrVal" )) {
298
278
Z_LVAL (type ) = VT_BSTR ;
299
- }
300
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pdecVal" ))
301
- {
279
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pdecVal" )) {
302
280
Z_LVAL (type ) = VT_DECIMAL |VT_BYREF ;
303
- }
304
- else if (!strcmp (Z_STRVAL_P (arg_property ), "punkVal" ))
305
- {
281
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "punkVal" )) {
306
282
Z_LVAL (type ) = VT_UNKNOWN ;
307
- }
308
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pdispVal" ))
309
- {
283
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pdispVal" )) {
310
284
Z_LVAL (type ) = VT_DISPATCH ;
311
- }
312
- else if (!strcmp (Z_STRVAL_P (arg_property ), "parray" ))
313
- {
285
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "parray" )) {
314
286
Z_LVAL (type ) = VT_ARRAY ;
315
- }
316
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pbVal" ))
317
- {
287
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pbVal" )) {
318
288
Z_LVAL (type ) = VT_UI1 |VT_BYREF ;
319
- }
320
- else if (!strcmp (Z_STRVAL_P (arg_property ), "piVal" ))
321
- {
289
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "piVal" )) {
322
290
Z_LVAL (type ) = VT_I2 |VT_BYREF ;
323
- }
324
- else if (!strcmp (Z_STRVAL_P (arg_property ), "plVal" ))
325
- {
291
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "plVal" )) {
326
292
Z_LVAL (type ) = VT_I4 |VT_BYREF ;
327
- }
328
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pfltVal" ))
329
- {
293
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pfltVal" )) {
330
294
Z_LVAL (type ) = VT_R4 |VT_BYREF ;
331
- }
332
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pdblVal" ))
333
- {
295
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pdblVal" )) {
334
296
Z_LVAL (type ) = VT_R8 |VT_BYREF ;
335
- }
336
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pboolVal" ))
337
- {
297
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pboolVal" )) {
338
298
Z_LVAL (type ) = VT_BOOL |VT_BYREF ;
339
- }
340
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pscode" ))
341
- {
299
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pscode" )) {
342
300
Z_LVAL (type ) = VT_ERROR |VT_BYREF ;
343
- }
344
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pcyVal" ))
345
- {
301
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pcyVal" )) {
346
302
Z_LVAL (type ) = VT_CY |VT_BYREF ;
347
- }
348
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pdate" ))
349
- {
303
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pdate" )) {
350
304
Z_LVAL (type ) = VT_DATE |VT_BYREF ;
351
- }
352
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pbstrVal" ))
353
- {
305
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pbstrVal" )) {
354
306
Z_LVAL (type ) = VT_BSTR |VT_BYREF ;
355
- }
356
- else if (!strcmp (Z_STRVAL_P (arg_property ), "ppunkVal" ))
357
- {
307
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "ppunkVal" )) {
358
308
Z_LVAL (type ) = VT_UNKNOWN |VT_BYREF ;
359
- }
360
- else if (!strcmp (Z_STRVAL_P (arg_property ), "ppdispVal" ))
361
- {
309
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "ppdispVal" )) {
362
310
Z_LVAL (type ) = VT_DISPATCH |VT_BYREF ;
363
- }
364
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pparray" ))
365
- {
311
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pparray" )) {
366
312
Z_LVAL (type ) = VT_ARRAY |VT_BYREF ;
367
- }
368
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pvarVal" ))
369
- {
313
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pvarVal" )) {
370
314
Z_LVAL (type ) = VT_VARIANT |VT_BYREF ;
371
- }
372
- else if (!strcmp (Z_STRVAL_P (arg_property ), "byref" ))
373
- {
315
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "byref" )) {
374
316
Z_LVAL (type ) = VT_BYREF ;
375
- }
376
- else if (!strcmp (Z_STRVAL_P (arg_property ), "cVal" ))
377
- {
317
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "cVal" )) {
378
318
Z_LVAL (type ) = VT_I1 ;
379
- }
380
- else if (!strcmp (Z_STRVAL_P (arg_property ), "uiVal" ))
381
- {
319
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "uiVal" )) {
382
320
Z_LVAL (type ) = VT_UI2 ;
383
- }
384
- else if (!strcmp (Z_STRVAL_P (arg_property ), "ulVal" ))
385
- {
321
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "ulVal" )) {
386
322
Z_LVAL (type ) = VT_UI4 ;
387
- }
388
- else if (!strcmp (Z_STRVAL_P (arg_property ), "intVal" ))
389
- {
323
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "intVal" )) {
390
324
Z_LVAL (type ) = VT_INT ;
391
- }
392
- else if (!strcmp (Z_STRVAL_P (arg_property ), "uintVal" ))
393
- {
325
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "uintVal" )) {
394
326
Z_LVAL (type ) = VT_UINT |VT_BYREF ;
395
- }
396
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pcVal" ))
397
- {
327
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pcVal" )) {
398
328
Z_LVAL (type ) = VT_I1 |VT_BYREF ;
399
- }
400
- else if (!strcmp (Z_STRVAL_P (arg_property ), "puiVal" ))
401
- {
329
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "puiVal" )) {
402
330
Z_LVAL (type ) = VT_UI2 |VT_BYREF ;
403
- }
404
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pulVal" ))
405
- {
331
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pulVal" )) {
406
332
Z_LVAL (type ) = VT_UI4 |VT_BYREF ;
407
- }
408
- else if (!strcmp (Z_STRVAL_P (arg_property ), "pintVal" ))
409
- {
333
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "pintVal" )) {
410
334
Z_LVAL (type ) = VT_INT |VT_BYREF ;
411
- }
412
- else if (!strcmp (Z_STRVAL_P (arg_property ), "puintVal" ))
413
- {
335
+ } else if (!strcmp (Z_STRVAL_P (arg_property ), "puintVal" )) {
414
336
Z_LVAL (type ) = VT_UINT |VT_BYREF ;
415
- }
416
- else
417
- {
337
+ } else {
418
338
php_error (E_WARNING , "Unknown member." );
419
339
return FAILURE ;
420
340
}
@@ -424,6 +344,7 @@ static int do_VARIANT_propset(VARIANT *var_arg, pval *arg_property, pval *value
424
344
return SUCCESS ;
425
345
}
426
346
347
+
427
348
static void php_VARIANT_destructor (zend_rsrc_list_entry * rsrc TSRMLS_DC )
428
349
{
429
350
FREE_VARIANT (rsrc -> ptr );
0 commit comments