| line | true | false | branch | 
 
| 36 | 0 | 0 | if (NULL == self->error_handler) return; | 
 
| 43 | 0 | 0 | PUSHMARK(SP); | 
 
| 44 | 0 | 0 | XPUSHs(error); | 
 
| 49 | 0 | 0 | FREETMPS; | 
 
| 54 | 0 | 0 | if (NULL == self->error_handler) return; | 
 
| 62 | 0 | 1 | while (!ngx_queue_empty(&self->cb_queue)) { | 
 
| 75 | 0 | 0 | if (REDIS_OK != status) { | 
 
| 80 | 0 | 0 | if (NULL == self->connect_handler) return; | 
 
| 87 | 0 | 0 | PUSHMARK(SP); | 
 
| 92 | 0 | 0 | FREETMPS; | 
 
| 101 | 0 | 0 | if (REDIS_OK == status) { | 
 
| 114 | 0 | 0 | if (NULL != self->connect_timeout) { | 
 
|  | 0 | 0 | if (NULL != self->connect_timeout) { | 
 
| 117 | 0 | 0 | if (NULL != self->command_timeout) { | 
 
|  | 0 | 0 | if (NULL != self->command_timeout) { | 
 
| 129 | 0 | 0 | if (REDIS_OK != r) { | 
 
| 139 | 0 | 0 | if (self->ac->err) { | 
 
| 170 | 0 | 0 | for (i = 0; i < reply->elements; i++) { | 
 
| 189 | 0 | 0 | if (NULL == reply) { | 
 
| 199 | 0 | 0 | PUSHMARK(SP); | 
 
| 206 | 0 | 0 | FREETMPS; | 
 
| 215 | 0 | 0 | PUSHMARK(SP); | 
 
| 217 | 0 | 0 | if (((redisReply*)reply)->type == REDIS_REPLY_ERROR) { | 
 
| 228 | 0 | 0 | FREETMPS; | 
 
| 232 | 0 | 0 | if (0 == cbt->persist) { | 
 
| 243 | 0 | 11 | I_EV_API("EV::Hiredis"); | 
 
|  | 11 | 0 | I_EV_API("EV::Hiredis"); | 
 
|  | 11 | 0 | I_EV_API("EV::Hiredis"); | 
 
|  | 0 | 11 | I_EV_API("EV::Hiredis"); | 
 
| 263 | 0 | 1 | if (NULL != self->ac) { | 
 
| 267 | 1 | 0 | if (NULL != self->error_handler) { | 
 
| 271 | 0 | 1 | if (NULL != self->connect_handler) { | 
 
| 275 | 0 | 1 | if (NULL != self->connect_timeout) { | 
 
| 279 | 0 | 1 | if (NULL != self->command_timeout) { | 
 
| 293 | 0 | 0 | if (NULL != self->ac) { | 
 
| 302 | 0 | 0 | if (NULL == self->ac) { | 
 
| 314 | 0 | 0 | if (NULL != self->ac) { | 
 
| 323 | 0 | 0 | if (NULL == self->ac) { | 
 
| 335 | 0 | 0 | if (NULL == self->ac) { | 
 
| 347 | 0 | 0 | if (NULL == self->connect_timeout) { | 
 
| 358 | 0 | 0 | if (NULL == self->command_timeout) { | 
 
| 369 | 0 | 1 | if (NULL != self->error_handler) { | 
 
| 374 | 1 | 0 | if (NULL != handler) { | 
 
| 387 | 0 | 0 | if (NULL != handler) { | 
 
| 388 | 0 | 0 | if (NULL != self->connect_handler) { | 
 
| 396 | 0 | 0 | if (self->connect_handler) { | 
 
| 416 | 0 | 1 | if (items <= 2) { | 
 
| 421 | 1 | 0 | if (!(SvROK(cb) && SvTYPE(SvRV(cb)) == SVt_PVCV)) { | 
 
|  | 0 | 1 | if (!(SvROK(cb) && SvTYPE(SvRV(cb)) == SVt_PVCV)) { | 
 
| 425 | 1 | 0 | if (NULL == self->ac) { | 
 
| 430 | 0 | 0 | Newx(argv, argc, char*); | 
 
| 431 | 0 | 0 | Newx(argvlen, argc, size_t); | 
 
| 433 | 0 | 0 | for (i = 0; i < argc; i++) { | 
 
| 434 | 0 | 0 | argv[i] = SvPV(ST(i + 1), len); | 
 
| 443 | 0 | 0 | if (0 == strcasecmp(argv[0], "subscribe") | 
 
| 444 | 0 | 0 | || 0 == strcasecmp(argv[0], "psubscribe") | 
 
| 445 | 0 | 0 | || 0 == strcasecmp(argv[0], "monitor") |