diff options
Diffstat (limited to 'filters/php_testfilter.c')
| -rw-r--r-- | filters/php_testfilter.c | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/filters/php_testfilter.c b/filters/php_testfilter.c index ca844b3..c9e4b5b 100644 --- a/filters/php_testfilter.c +++ b/filters/php_testfilter.c @@ -14,7 +14,9 @@ _php_testfilter_tint(Imlib_Image im, HashTable* params) { Imlib_Image imge = im; Imlib_Image anoim; - HashPosition pos; + ulong num_index; + zend_string *str_index; + imlib_zval *data; Imlib_Color_Modifier cm; DATA8 atab[256]; @@ -28,30 +30,21 @@ _php_testfilter_tint(Imlib_Image im, HashTable* params) w = imlib_image_get_width(); h = imlib_image_get_height(); - zend_hash_internal_pointer_reset_ex(params,&pos); - while (pos) + ZEND_HASH_FOREACH_KEY_VAL(params, num_index, str_index, data) { - char *str_index; - ulong num_index; - int retval; - - retval=zend_hash_get_current_key_ex(params,&str_index,NULL,&num_index,0,&pos); - if (retval==HASH_KEY_IS_STRING) + if (str_index) { - zval **data; - zend_hash_get_current_data_ex(params,(void*)&data,&pos); convert_to_long_ex(data); - if (!strcmp(str_index,"red")) r=Z_LVAL_PP(data); - if (!strcmp(str_index,"blue")) b=Z_LVAL_PP(data); - if (!strcmp(str_index,"green")) g=Z_LVAL_PP(data); - if (!strcmp(str_index,"x")) x=Z_LVAL_PP(data); - if (!strcmp(str_index,"y")) y=Z_LVAL_PP(data); - if (!strcmp(str_index,"w")) w=Z_LVAL_PP(data); - if (!strcmp(str_index,"h")) h=Z_LVAL_PP(data); - if (!strcmp(str_index,"alpha")) a=Z_LVAL_PP(data); + if (!strcmp(STR_VAL(str_index),"red")) r=Z_LVAL_PP(data); + if (!strcmp(STR_VAL(str_index),"blue")) b=Z_LVAL_PP(data); + if (!strcmp(STR_VAL(str_index),"green")) g=Z_LVAL_PP(data); + if (!strcmp(STR_VAL(str_index),"x")) x=Z_LVAL_PP(data); + if (!strcmp(STR_VAL(str_index),"y")) y=Z_LVAL_PP(data); + if (!strcmp(STR_VAL(str_index),"w")) w=Z_LVAL_PP(data); + if (!strcmp(STR_VAL(str_index),"h")) h=Z_LVAL_PP(data); + if (!strcmp(STR_VAL(str_index),"alpha")) a=Z_LVAL_PP(data); } - zend_hash_move_forward_ex(params,&pos); - } + } ZEND_HASH_FOREACH_END(); /* zend_printf( "Using values red=%d,blue=%d,green=%d,x=%d,y=%d,height=%d,width=%d,alpha=%d\n", r,b,g,x,y,w,h,a ); */ |
