35
35
#define R_SUB_CALLBACK_FT_TYPE 2
36
36
37
37
static int le_redis_sock ;
38
- static int le_redis_multi_access_type ;
39
38
40
39
static zend_class_entry * redis_ce ;
41
40
static zend_class_entry * redis_exception_ce ;
@@ -271,20 +270,14 @@ PHP_MINIT_FUNCTION(redis)
271
270
redis_sock_name , module_number
272
271
);
273
272
274
- le_redis_multi_access_type = zend_register_list_destructors_ex (
275
- redis_destructor_multi_access ,
276
- NULL ,
277
- redis_multi_access_type_name , module_number
278
- );
279
-
280
273
add_constant_long (redis_ce , "REDIS_NOT_FOUND" , REDIS_NOT_FOUND );
281
274
add_constant_long (redis_ce , "REDIS_STRING" , REDIS_STRING );
282
275
add_constant_long (redis_ce , "REDIS_SET" , REDIS_SET );
283
276
add_constant_long (redis_ce , "REDIS_LIST" , REDIS_LIST );
284
277
285
- add_constant_long (redis_ce , "ATOMIC" , REDIS_ATOMIC );
286
- add_constant_long (redis_ce , "MULTI" , REDIS_MULTI );
287
- add_constant_long (redis_ce , "PIPELINE" , REDIS_PIPELINE );
278
+ add_constant_long (redis_ce , "ATOMIC" , ATOMIC );
279
+ add_constant_long (redis_ce , "MULTI" , MULTI );
280
+ add_constant_long (redis_ce , "PIPELINE" , PIPELINE );
288
281
289
282
return SUCCESS ;
290
283
}
@@ -333,37 +326,8 @@ PHP_METHOD(Redis, __construct)
333
326
if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "" ) == FAILURE ) {
334
327
RETURN_FALSE ;
335
328
}
336
- int multi_flag = 0 , id ;
337
- object = getThis ();
338
- id = zend_list_insert (& multi_flag , le_redis_multi_access_type );
339
- add_property_resource (object , "multi_flag" , id );
340
-
341
- set_flag (object , REDIS_ATOMIC TSRMLS_CC );
342
-
343
329
}
344
330
/* }}} */
345
- PHPAPI int get_flag (zval * object TSRMLS_DC )
346
- {
347
- zval * * multi_flag ;
348
- int flag , flag_result ;
349
-
350
- zend_hash_find (Z_OBJPROP_P (object ), "multi_flag" , sizeof ("multi_flag" ), (void * * ) & multi_flag );
351
- flag = (int )(long )zend_list_find (Z_LVAL_PP (multi_flag ), & flag_result );
352
-
353
- return flag ;
354
- }
355
-
356
- PHPAPI void set_flag (zval * object , int new_flag TSRMLS_DC )
357
- {
358
- zval * * multi_flag = NULL ;
359
-
360
- zend_hash_find (Z_OBJPROP_P (object ), "multi_flag" , sizeof ("multi_flag" ), (void * * ) & multi_flag );
361
- zend_list_delete (Z_LVAL_PP (multi_flag ));
362
-
363
- int id = zend_list_insert ((void * )(long )new_flag , le_redis_multi_access_type );
364
- add_property_resource (object , "multi_flag" , id );
365
-
366
- }
367
331
368
332
/* {{{ proto boolean Redis::connect(string host, int port [, int timeout])
369
333
*/
@@ -4193,7 +4157,7 @@ PHPAPI int redis_response_enqueued(RedisSock *redis_sock TSRMLS_DC) {
4193
4157
return ret ;
4194
4158
}
4195
4159
4196
- /* flag : get, set {REDIS_ATOMIC, REDIS_MULTI, REDIS_PIPELINE } */
4160
+ /* flag : get, set {ATOMIC, MULTI, PIPELINE } */
4197
4161
4198
4162
PHP_METHOD (Redis , multi )
4199
4163
{
@@ -4203,7 +4167,7 @@ PHP_METHOD(Redis, multi)
4203
4167
int response_len , cmd_len ;
4204
4168
char * response ;
4205
4169
zval * object ;
4206
- long multi_value = REDIS_MULTI ;
4170
+ long multi_value = MULTI ;
4207
4171
4208
4172
if (zend_parse_method_parameters (ZEND_NUM_ARGS () TSRMLS_CC , getThis (), "O|l" ,
4209
4173
& object , redis_ce , & multi_value ) == FAILURE ) {
@@ -4216,8 +4180,8 @@ PHP_METHOD(Redis, multi)
4216
4180
RETURN_FALSE ;
4217
4181
}
4218
4182
4219
- if (multi_value == REDIS_MULTI || multi_value == REDIS_PIPELINE ) {
4220
- set_flag ( object , multi_value TSRMLS_CC ) ;
4183
+ if (multi_value == MULTI || multi_value == PIPELINE ) {
4184
+ redis_sock -> mode = multi_value ;
4221
4185
} else {
4222
4186
RETURN_FALSE ;
4223
4187
}
@@ -4264,7 +4228,7 @@ PHP_METHOD(Redis, discard)
4264
4228
RETURN_FALSE ;
4265
4229
}
4266
4230
4267
- set_flag ( object , 0 TSRMLS_CC ) ;
4231
+ redis_sock -> mode = ATOMIC ;
4268
4232
4269
4233
if (redis_sock_get (object , & redis_sock TSRMLS_CC ) < 0 ) {
4270
4234
RETURN_FALSE ;
@@ -4395,11 +4359,11 @@ PHP_METHOD(Redis, exec)
4395
4359
if (redis_sock_read_multibulk_multi_reply (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock ) < 0 ) {
4396
4360
zval_dtor (return_value );
4397
4361
free_reply_callbacks (object , redis_sock );
4398
- set_flag ( object , REDIS_ATOMIC TSRMLS_CC ) ;
4362
+ redis_sock -> mode = ATOMIC ;
4399
4363
RETURN_FALSE ;
4400
4364
}
4401
4365
free_reply_callbacks (object , redis_sock );
4402
- set_flag ( object , REDIS_ATOMIC TSRMLS_CC ) ;
4366
+ redis_sock -> mode = ATOMIC ;
4403
4367
}
4404
4368
4405
4369
IF_PIPELINE () {
@@ -4426,23 +4390,23 @@ PHP_METHOD(Redis, exec)
4426
4390
if (redis_sock_write (redis_sock , request , total ) < 0 ) {
4427
4391
free (request );
4428
4392
free_reply_callbacks (object , redis_sock );
4429
- set_flag ( object , REDIS_ATOMIC TSRMLS_CC ) ;
4393
+ redis_sock -> mode = ATOMIC ;
4430
4394
RETURN_FALSE ;
4431
4395
}
4432
4396
free (request );
4433
4397
} else {
4434
- set_flag ( object , REDIS_ATOMIC TSRMLS_CC ) ;
4398
+ redis_sock -> mode = ATOMIC ;
4435
4399
free_reply_callbacks (object , redis_sock );
4436
4400
array_init (return_value ); /* empty array when no command was run. */
4437
4401
return ;
4438
4402
}
4439
4403
4440
4404
if (redis_sock_read_multibulk_pipeline_reply (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock ) < 0 ) {
4441
- set_flag ( object , REDIS_ATOMIC TSRMLS_CC ) ;
4405
+ redis_sock -> mode = ATOMIC ;
4442
4406
free_reply_callbacks (object , redis_sock );
4443
4407
RETURN_FALSE ;
4444
4408
}
4445
- set_flag ( object , REDIS_ATOMIC TSRMLS_CC ) ;
4409
+ redis_sock -> mode = ATOMIC ;
4446
4410
free_reply_callbacks (object , redis_sock );
4447
4411
}
4448
4412
}
@@ -4478,7 +4442,7 @@ PHP_METHOD(Redis, pipeline)
4478
4442
if (redis_sock_get (object , & redis_sock TSRMLS_CC ) < 0 ) {
4479
4443
RETURN_FALSE ;
4480
4444
}
4481
- set_flag ( object , REDIS_PIPELINE TSRMLS_CC ) ;
4445
+ redis_sock -> mode = PIPELINE ;
4482
4446
4483
4447
/*
4484
4448
NB : we keep the function fold, to detect the last function.
0 commit comments