From: foobar Date: Fri, 11 Jul 2003 01:57:39 +0000 (+0000) Subject: MFH: sync X-Git-Tag: php-4.3.3RC2~138 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=241945e11f264a4f39108241df413230f101a2b5;p=php MFH: sync --- diff --git a/ext/sybase/php_sybase_db.c b/ext/sybase/php_sybase_db.c index bba31e8e17..dff1e56bcf 100644 --- a/ext/sybase/php_sybase_db.c +++ b/ext/sybase/php_sybase_db.c @@ -134,7 +134,7 @@ ZEND_GET_MODULE(sybase) THREAD_LS sybase_module php_sybase_module; -#define CHECK_LINK(link) { if (link==-1) { php_error(E_WARNING,"Sybase: A link to the server could not be established"); RETURN_FALSE; } } +#define CHECK_LINK(link) { if (link==-1) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Sybase: A link to the server could not be established"); RETURN_FALSE; } } static void php_sybase_get_column_content(sybase_link *sybase_ptr,int offset,pval **result_ptr, int column_type); @@ -144,7 +144,7 @@ static int php_sybase_error_handler(DBPROCESS *dbproc,int severity,int dberr, int oserr,char *dberrstr,char *oserrstr) { if (severity >= php_sybase_module.min_error_severity) { - php_error(E_WARNING,"Sybase error: %s (severity %d)",dberrstr,severity); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Sybase error: %s (severity %d)",dberrstr,severity); } return INT_CANCEL; } @@ -155,7 +155,7 @@ static int php_sybase_message_handler(DBPROCESS *dbproc,DBINT msgno,int msgstate char *procname,DBUSMALLINT line) { if (severity >= php_sybase_module.min_message_severity) { - php_error(E_WARNING,"Sybase message: %s (severity %d)",msgtext,severity); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Sybase message: %s (severity %d)",msgtext,severity); } STR_FREE(php_sybase_module.server_message); php_sybase_module.server_message = estrdup(msgtext); @@ -313,88 +313,88 @@ static void php_sybase_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent) strcpy(hashed_details,"sybase___"); break; case 1: { - pval *yyhost; + zval **yyhost; - if (getParameters(ht, 1, &yyhost)==FAILURE) { + if (zend_get_parameters_ex(1, &yyhost) == FAILURE) { RETURN_FALSE; } - convert_to_string(yyhost); - host = Z_STRVAL_P(yyhost); - hashed_details_length = Z_STRLEN_P(yyhost)+6+5; + convert_to_string_ex(yyhost); + host = Z_STRVAL_PP(yyhost); + hashed_details_length = Z_STRLEN_PP(yyhost)+6+5; hashed_details = (char *) emalloc(hashed_details_length+1); - sprintf(hashed_details,"sybase_%s____",Z_STRVAL_P(yyhost)); + sprintf(hashed_details,"sybase_%s____", Z_STRVAL_PP(yyhost)); } break; case 2: { - pval *yyhost,*yyuser; + zval **yyhost, **yyuser; - if (getParameters(ht, 2, &yyhost, &yyuser)==FAILURE) { + if (zend_get_parameters_ex(ht, 2, &yyhost, &yyuser) == FAILURE) { RETURN_FALSE; } - convert_to_string(yyhost); - convert_to_string(yyuser); - host = Z_STRVAL_P(yyhost); - user = Z_STRVAL_P(yyuser); - hashed_details_length = Z_STRLEN_P(yyhost)+Z_STRLEN_P(yyuser)+6+5; + convert_to_string_ex(yyhost); + convert_to_string_ex(yyuser); + host = Z_STRVAL_PP(yyhost); + user = Z_STRVAL_PP(yyuser); + hashed_details_length = Z_STRLEN_PP(yyhost)+Z_STRLEN_PP(yyuser)+6+5; hashed_details = (char *) emalloc(hashed_details_length+1); - sprintf(hashed_details,"sybase_%s_%s___",Z_STRVAL_P(yyhost),Z_STRVAL_P(yyuser)); + sprintf(hashed_details,"sybase_%s_%s___",Z_STRVAL_PP(yyhost),Z_STRVAL_PP(yyuser)); } break; case 3: { - pval *yyhost,*yyuser,*yypasswd; + zval **yyhost, **yyuser,**yypasswd; - if (getParameters(ht, 3, &yyhost, &yyuser, &yypasswd) == FAILURE) { + if (zend_get_parameters_ex(3, &yyhost, &yyuser, &yypasswd) == FAILURE) { RETURN_FALSE; } - convert_to_string(yyhost); - convert_to_string(yyuser); - convert_to_string(yypasswd); - host = Z_STRVAL_P(yyhost); - user = Z_STRVAL_P(yyuser); - passwd = Z_STRVAL_P(yypasswd); - hashed_details_length = Z_STRLEN_P(yyhost)+Z_STRLEN_P(yyuser)+Z_STRLEN_P(yypasswd)+6+5; + convert_to_string_ex(yyhost); + convert_to_string_ex(yyuser); + convert_to_string_ex(yypasswd); + host = Z_STRVAL_PP(yyhost); + user = Z_STRVAL_PP(yyuser); + passwd = Z_STRVAL_PP(yypasswd); + hashed_details_length = Z_STRLEN_PP(yyhost)+Z_STRLEN_PP(yyuser)+Z_STRLEN_PP(yypasswd)+6+5; hashed_details = (char *) emalloc(hashed_details_length+1); - sprintf(hashed_details,"sybase_%s_%s_%s__",Z_STRVAL_P(yyhost),Z_STRVAL_P(yyuser),Z_STRVAL_P(yypasswd)); /* SAFE */ + sprintf(hashed_details,"sybase_%s_%s_%s__",Z_STRVAL_PP(yyhost),Z_STRVAL_PP(yyuser),Z_STRVAL_PP(yypasswd)); /* SAFE */ } break; case 4: { - pval *yyhost,*yyuser,*yypasswd,*yycharset; + zval **yyhost, **yyuser, **yypasswd, **yycharset; - if (getParameters(ht, 4, &yyhost, &yyuser, &yypasswd, &yycharset) == FAILURE) { + if (zend_get_parameters_ex(4, &yyhost, &yyuser, &yypasswd, &yycharset) == FAILURE) { RETURN_FALSE; } - convert_to_string(yyhost); - convert_to_string(yyuser); - convert_to_string(yypasswd); - convert_to_string(yycharset); - host = Z_STRVAL_P(yyhost); - user = Z_STRVAL_P(yyuser); - passwd = Z_STRVAL_P(yypasswd); - charset = Z_STRVAL_P(yycharset); - hashed_details_length = Z_STRLEN_P(yyhost)+Z_STRLEN_P(yyuser)+Z_STRLEN_P(yypasswd)+Z_STRLEN_P(yycharset)+6+5; + convert_to_string_ex(yyhost); + convert_to_string_ex(yyuser); + convert_to_string_ex(yypasswd); + convert_to_string_ex(yycharset); + host = Z_STRVAL_PP(yyhost); + user = Z_STRVAL_PP(yyuser); + passwd = Z_STRVAL_PP(yypasswd); + charset = Z_STRVAL_PP(yycharset); + hashed_details_length = Z_STRLEN_PP(yyhost)+Z_STRLEN_PP(yyuser)+Z_STRLEN_PP(yypasswd)+Z_STRLEN_PP(yycharset)+6+5; hashed_details = (char *) emalloc(hashed_details_length+1); - sprintf(hashed_details,"sybase_%s_%s_%s_%s_",Z_STRVAL_P(yyhost),Z_STRVAL_P(yyuser),Z_STRVAL_P(yypasswd),Z_STRVAL_P(yycharset)); /* SAFE */ + sprintf(hashed_details,"sybase_%s_%s_%s_%s_",Z_STRVAL_PP(yyhost),Z_STRVAL_PP(yyuser),Z_STRVAL_PP(yypasswd),Z_STRVAL_PP(yycharset)); /* SAFE */ } break; case 5: { - pval *yyhost,*yyuser,*yypasswd,*yycharset, *yyappname; + zval **yyhost, **yyuser, **yypasswd, **yycharset, **yyappname; - if (getParameters(ht, 5, &yyhost, &yyuser, &yypasswd, &yycharset, &yyappname) == FAILURE) { + if (zend_get_parameters_ex(5, &yyhost, &yyuser, &yypasswd, &yycharset, &yyappname) == FAILURE) { RETURN_FALSE; } - convert_to_string(yyhost); - convert_to_string(yyuser); - convert_to_string(yypasswd); - convert_to_string(yycharset); - convert_to_string(yyappname); - host = Z_STRVAL_P(yyhost); - user = Z_STRVAL_P(yyuser); - passwd = Z_STRVAL_P(yypasswd); - charset = Z_STRVAL_P(yycharset); - appname = Z_STRVAL_P(yyappname); - hashed_details_length = Z_STRLEN_P(yyhost)+Z_STRLEN_P(yyuser)+Z_STRLEN_P(yypasswd)+Z_STRLEN_P(yycharset)+Z_STRLEN_P(yyappname)+6+5; + convert_to_string_ex(yyhost); + convert_to_string_ex(yyuser); + convert_to_string_ex(yypasswd); + convert_to_string_ex(yycharset); + convert_to_string_ex(yyappname); + host = Z_STRVAL_PP(yyhost); + user = Z_STRVAL_PP(yyuser); + passwd = Z_STRVAL_PP(yypasswd); + charset = Z_STRVAL_PP(yycharset); + appname = Z_STRVAL_PP(yyappname); + hashed_details_length = Z_STRLEN_PP(yyhost)+Z_STRLEN_PP(yyuser)+Z_STRLEN_PP(yypasswd)+Z_STRLEN_P(yycharset)+Z_STRLEN_PP(yyappname)+6+5; hashed_details = (char *) emalloc(hashed_details_length+1); - sprintf(hashed_details,"sybase_%s_%s_%s_%s_%s",Z_STRVAL_P(yyhost),Z_STRVAL_P(yyuser),Z_STRVAL_P(yypasswd),Z_STRVAL_P(yycharset),Z_STRVAL_P(yyappname)); /* SAFE */ + sprintf(hashed_details,"sybase_%s_%s_%s_%s_%s",Z_STRVAL_PP(yyhost),Z_STRVAL_PP(yyuser),Z_STRVAL_PP(yypasswd),Z_STRVAL_PP(yycharset),Z_STRVAL_PP(yyappname)); /* SAFE */ } break; default: @@ -405,9 +405,8 @@ static void php_sybase_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent) /* set a DBLOGIN record */ if ((sybase.login=dblogin())==NULL) { - php_error(E_WARNING,"Sybase: Unable to allocate login record"); - efree(hashed_details); - RETURN_FALSE; + php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Unable to allocate login record"); + goto err; } if (user) { @@ -438,30 +437,21 @@ static void php_sybase_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent) list_entry new_le; if (php_sybase_module.max_links!=-1 && php_sybase_module.num_links>=php_sybase_module.max_links) { - php_error(E_WARNING,"Sybase: Too many open links (%d)",php_sybase_module.num_links); - efree(hashed_details); - dbloginfree(sybase.login); - RETURN_FALSE; + php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Too many open links (%d)",php_sybase_module.num_links); + goto err_login; } if (php_sybase_module.max_persistent!=-1 && php_sybase_module.num_persistent>=php_sybase_module.max_persistent) { - php_error(E_WARNING,"Sybase: Too many open persistent links (%d)",php_sybase_module.num_persistent); - efree(hashed_details); - dbloginfree(sybase.login); - RETURN_FALSE; + php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Too many open persistent links (%d)",php_sybase_module.num_persistent); + goto err_login; } /* create the link */ if ((sybase.link=PHP_SYBASE_DBOPEN(sybase.login,host))==FAIL) { - /*php_error(E_WARNING,"Sybase: Unable to connect to server: %s",sybase_error(sybase));*/ - efree(hashed_details); - dbloginfree(sybase.login); - RETURN_FALSE; + /*php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Unable to connect to server: %s",sybase_error(sybase));*/ + goto err_login; } if (dbsetopt(sybase.link,DBBUFFER,"2",-1)==FAIL) { - efree(hashed_details); - dbloginfree(sybase.login); - dbclose(sybase.link); - RETURN_FALSE; + goto err_link; } /* hash it up */ @@ -471,35 +461,27 @@ static void php_sybase_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent) new_le.ptr = sybase_ptr; if (zend_hash_update(&EG(persistent_list), hashed_details, hashed_details_length+1, (void *) &new_le, sizeof(list_entry),NULL)==FAILURE) { free(sybase_ptr); - efree(hashed_details); - dbloginfree(sybase.login); - RETURN_FALSE; + goto err_link; } php_sybase_module.num_persistent++; php_sybase_module.num_links++; } else { /* we do */ if (Z_TYPE_P(le) != php_sybase_module.le_plink) { - php_error(E_WARNING,"Sybase: Hashed persistent link is not a Sybase link!"); - efree(hashed_details); - dbloginfree(sybase.login); - RETURN_FALSE; + php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Hashed persistent link is not a Sybase link!"); + goto err_login; } sybase_ptr = (sybase_link *) le->ptr; /* test that the link hasn't died */ if (DBDEAD(sybase_ptr->link)==TRUE) { if ((sybase_ptr->link=PHP_SYBASE_DBOPEN(sybase_ptr->login,host))==FAIL) { - /*php_error(E_WARNING,"Sybase: Link to server lost, unable to reconnect");*/ + /*php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Link to server lost, unable to reconnect");*/ zend_hash_del(&EG(persistent_list), hashed_details, hashed_details_length+1); - efree(hashed_details); - dbloginfree(sybase.login); - RETURN_FALSE; + goto err_login; } if (dbsetopt(sybase_ptr->link,DBBUFFER,"2",-1)==FAIL) { zend_hash_del(&EG(persistent_list), hashed_details, hashed_details_length+1); - efree(hashed_details); - dbloginfree(sybase.login); - RETURN_FALSE; + goto err_login; } } } @@ -518,9 +500,7 @@ static void php_sybase_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent) void *ptr; if (Z_TYPE_P(index_ptr) != le_index_ptr) { - efree(hashed_details); - dbloginfree(sybase.login); - RETURN_FALSE; + goto err_login; } link = (int) index_ptr->ptr; ptr = zend_list_find(link,&type); /* check if the link is still there */ @@ -535,24 +515,17 @@ static void php_sybase_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent) } } if (php_sybase_module.max_links!=-1 && php_sybase_module.num_links>=php_sybase_module.max_links) { - php_error(E_WARNING,"Sybase: Too many open links (%d)",php_sybase_module.num_links); - efree(hashed_details); - dbloginfree(sybase.login); - RETURN_FALSE; + php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Too many open links (%d)",php_sybase_module.num_links); + goto err_login; } if ((sybase.link=PHP_SYBASE_DBOPEN(sybase.login,host))==NULL) { - /*php_error(E_WARNING,"Sybase: Unable to connect to server: %s",sybase_error(sybase));*/ - efree(hashed_details); - dbloginfree(sybase.login); - RETURN_FALSE; + /*php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Unable to connect to server: %s",sybase_error(sybase));*/ + goto err_login; } if (dbsetopt(sybase.link,DBBUFFER,"2",-1)==FAIL) { - efree(hashed_details); - dbloginfree(sybase.login); - dbclose(sybase.link); - RETURN_FALSE; + goto err_link; } /* add it to the list */ @@ -565,15 +538,21 @@ static void php_sybase_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent) new_index_ptr.ptr = (void *) Z_LVAL_P(return_value); Z_TYPE(new_index_ptr) = le_index_ptr; if (zend_hash_update(&EG(regular_list),hashed_details,hashed_details_length+1,(void *) &new_index_ptr, sizeof(list_entry),NULL)==FAILURE) { - efree(hashed_details); - dbloginfree(sybase.login); - dbclose(sybase.link); - RETURN_FALSE; + goto err_link; } php_sybase_module.num_links++; } efree(hashed_details); php_sybase_module.default_link=Z_LVAL_P(return_value); + return; + +err_link: + dbclose(sybase.link); +err_login: + dbloginfree(sybase.login); +err: + efree(hashed_details); + RETURN_FALSE; } @@ -607,7 +586,7 @@ PHP_FUNCTION(sybase_pconnect) Close Sybase connection */ PHP_FUNCTION(sybase_close) { - pval *sybase_link_index; + zval **sybase_link_index; int id,type; switch (ZEND_NUM_ARGS()) { @@ -615,11 +594,11 @@ PHP_FUNCTION(sybase_close) id = php_sybase_module.default_link; break; case 1: - if (getParameters(ht, 1, &sybase_link_index)==FAILURE) { + if (zend_get_parameters_ex(1, &sybase_link_index) == FAILURE) { RETURN_FALSE; } - convert_to_long(sybase_link_index); - id = Z_LVAL_P(sybase_link_index); + convert_to_long_ex(sybase_link_index); + id = Z_LVAL_PP(sybase_link_index); break; default: WRONG_PARAM_COUNT; @@ -628,7 +607,7 @@ PHP_FUNCTION(sybase_close) zend_list_find(id,&type); if (type!=php_sybase_module.le_link && type!=php_sybase_module.le_plink) { - php_error(E_WARNING,"%d is not a Sybase link index",id); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"%d is not a Sybase link index",id); RETURN_FALSE; } @@ -642,23 +621,23 @@ PHP_FUNCTION(sybase_close) Select Sybase database */ PHP_FUNCTION(sybase_select_db) { - pval *db,*sybase_link_index; + zval *db, **sybase_link_index; int id,type; sybase_link *sybase_ptr; switch(ZEND_NUM_ARGS()) { case 1: - if (getParameters(ht, 1, &db)==FAILURE) { + if (zend_get_parameters_ex(1, &db) == FAILURE) { RETURN_FALSE; } id = php_sybase_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); break; case 2: - if (getParameters(ht, 2, &db, &sybase_link_index)==FAILURE) { + if (zend_get_parameters_ex(2, &db, &sybase_link_index) == FAILURE) { RETURN_FALSE; } - convert_to_long(sybase_link_index); - id = Z_LVAL_P(sybase_link_index); + convert_to_long_ex(sybase_link_index); + id = Z_LVAL_PP(sybase_link_index); break; default: WRONG_PARAM_COUNT; @@ -669,14 +648,14 @@ PHP_FUNCTION(sybase_select_db) sybase_ptr = (sybase_link *) zend_list_find(id,&type); if (type!=php_sybase_module.le_link && type!=php_sybase_module.le_plink) { - php_error(E_WARNING,"%d is not a Sybase link index",id); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"%d is not a Sybase link index",id); RETURN_FALSE; } convert_to_string(db); - if (dbuse(sybase_ptr->link,Z_STRVAL_P(db))==FAIL) { - /*php_error(E_WARNING,"Sybase: Unable to select database: %s",sybase_error(sybase));*/ + if (dbuse(sybase_ptr->link,Z_STRVAL_PP(db))==FAIL) { + /*php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Unable to select database: %s",sybase_error(sybase));*/ RETURN_FALSE; } else { RETURN_TRUE; @@ -767,7 +746,7 @@ static void php_sybase_get_column_content(sybase_link *sybase_ptr,int offset,pva Z_STRVAL_P(result) = res_buf; Z_TYPE_P(result) = IS_STRING; } else { - php_error(E_WARNING,"Sybase: column %d has unknown data type (%d)", offset, coltype(offset)); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: column %d has unknown data type (%d)", offset, coltype(offset)); ZVAL_FALSE(result); } } @@ -779,7 +758,7 @@ static void php_sybase_get_column_content(sybase_link *sybase_ptr,int offset,pva Send Sybase query */ PHP_FUNCTION(sybase_query) { - pval *query,*sybase_link_index; + zval **query, **sybase_link_index; int id,type,retvalue; sybase_link *sybase_ptr; sybase_result *result; @@ -790,17 +769,17 @@ PHP_FUNCTION(sybase_query) switch(ZEND_NUM_ARGS()) { case 1: - if (getParameters(ht, 1, &query)==FAILURE) { + if (zend_get_parameters_ex(1, &query) == FAILURE) { RETURN_FALSE; } id = php_sybase_module.default_link; break; case 2: - if (getParameters(ht, 2, &query, &sybase_link_index)==FAILURE) { + if (zend_get_parameters_ex(2, &query, &sybase_link_index) == FAILURE) { RETURN_FALSE; } - convert_to_long(sybase_link_index); - id = Z_LVAL_P(sybase_link_index); + convert_to_long_ex(sybase_link_index); + id = Z_LVAL_PP(sybase_link_index); break; default: WRONG_PARAM_COUNT; @@ -809,17 +788,17 @@ PHP_FUNCTION(sybase_query) sybase_ptr = (sybase_link *) zend_list_find(id,&type); if (type!=php_sybase_module.le_link && type!=php_sybase_module.le_plink) { - php_error(E_WARNING,"%d is not a Sybase link index",id); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"%d is not a Sybase link index",id); RETURN_FALSE; } - convert_to_string(query); - if (dbcmd(sybase_ptr->link,Z_STRVAL_P(query))==FAIL) { - /*php_error(E_WARNING,"Sybase: Unable to set query");*/ + convert_to_string_ex(query); + if (dbcmd(sybase_ptr->link,Z_STRVAL_PP(query))==FAIL) { + /*php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Unable to set query");*/ RETURN_FALSE; } if (dbsqlexec(sybase_ptr->link)==FAIL || dbresults(sybase_ptr->link)==FAIL) { - /*php_error(E_WARNING,"Sybase: Query failed");*/ + /*php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Query failed");*/ RETURN_FALSE; } @@ -924,22 +903,22 @@ PHP_FUNCTION(sybase_query) Free result memory */ PHP_FUNCTION(sybase_free_result) { - pval *sybase_result_index; + zval **sybase_result_index; sybase_result *result; int type; - if (ZEND_NUM_ARGS()!=1 || getParameters(ht, 1, &sybase_result_index)==FAILURE) { + if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &sybase_result_index) == FAILURE) { WRONG_PARAM_COUNT; } - convert_to_long(sybase_result_index); - if (Z_LVAL_P(sybase_result_index)==0) { + convert_to_long_ex(sybase_result_index);~ + if (Z_LVAL_PP(sybase_result_index)==0) { RETURN_FALSE; } - result = (sybase_result *) zend_list_find(Z_LVAL_P(sybase_result_index),&type); + result = (sybase_result *) zend_list_find(Z_LVAL_PP(sybase_result_index),&type); if (type!=php_sybase_module.le_result) { - php_error(E_WARNING,"%d is not a Sybase result index",Z_LVAL_P(sybase_result_index)); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"%d is not a Sybase result index",Z_LVAL_PP(sybase_result_index)); RETURN_FALSE; } zend_list_delete(Z_LVAL_P(sybase_result_index)); @@ -961,20 +940,20 @@ PHP_FUNCTION(sybase_get_last_message) Get number of rows in result */ PHP_FUNCTION(sybase_num_rows) { - pval *result_index; + zval **result_index; int type,id; sybase_result *result; - if (ZEND_NUM_ARGS()!=1 || getParameters(ht, 1, &result_index)==FAILURE) { + if (ZEND_NUM_ARGS() !=1 || zend_get_parameters_ex(1, &result_index) == FAILURE) { WRONG_PARAM_COUNT; } - convert_to_long(result_index); - id = Z_LVAL_P(result_index); + convert_to_long_ex(result_index); + id = Z_LVAL_PP(result_index); result = (sybase_result *) zend_list_find(id,&type); if (type!=php_sybase_module.le_result) { - php_error(E_WARNING,"%d is not a Sybase result index",id); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"%d is not a Sybase result index",id); RETURN_FALSE; } @@ -987,20 +966,20 @@ PHP_FUNCTION(sybase_num_rows) Get number of fields in result */ PHP_FUNCTION(sybase_num_fields) { - pval *result_index; + zval **result_index; int type,id; sybase_result *result; - if (ZEND_NUM_ARGS()!=1 || getParameters(ht, 1, &result_index)==FAILURE) { + if (ZEND_NUM_ARGS() !=1 || zend_get_parameters_ex(1, &result_index) == FAILURE) { WRONG_PARAM_COUNT; } - convert_to_long(result_index); - id = Z_LVAL_P(result_index); + convert_to_long_ex(result_index); + id = Z_LVAL_PP(result_index); result = (sybase_result *) zend_list_find(id,&type); if (type!=php_sybase_module.le_result) { - php_error(E_WARNING,"%d is not a Sybase result index",id); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"%d is not a Sybase result index",id); RETURN_FALSE; } @@ -1013,21 +992,21 @@ PHP_FUNCTION(sybase_num_fields) Get row as enumerated array */ PHP_FUNCTION(sybase_fetch_row) { - pval *sybase_result_index; + zval **sybase_result_index; int type,i,id; sybase_result *result; pval *field_content; - if (ZEND_NUM_ARGS()!=1 || getParameters(ht, 1, &sybase_result_index)==FAILURE) { + if (ZEND_NUM_ARGS() !=1 || zend_get_parameters_ex(1, &sybase_result_index)==FAILURE) { WRONG_PARAM_COUNT; } - convert_to_long(sybase_result_index); - id = Z_LVAL_P(sybase_result_index); + convert_to_long_ex(sybase_result_index); + id = Z_LVAL_PP(sybase_result_index); result = (sybase_result *) zend_list_find(id,&type); if (type!=php_sybase_module.le_result) { - php_error(E_WARNING,"%d is not a Sybase result index",id); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"%d is not a Sybase result index",id); RETURN_FALSE; } @@ -1047,20 +1026,20 @@ PHP_FUNCTION(sybase_fetch_row) static void php_sybase_fetch_hash(INTERNAL_FUNCTION_PARAMETERS) { - pval *sybase_result_index; + zval **sybase_result_index; sybase_result *result; int type; int i; - if (ZEND_NUM_ARGS()!=1 || getParameters(ht, 1, &sybase_result_index)==FAILURE) { + if (ZEND_NUM_ARGS() !=1 || zend_get_parameters_ex(1, &sybase_result_index) == FAILURE) { WRONG_PARAM_COUNT; } - convert_to_long(sybase_result_index); - result = (sybase_result *) zend_list_find(Z_LVAL_P(sybase_result_index),&type); + convert_to_long_ex(sybase_result_index); + result = (sybase_result *) zend_list_find(Z_LVAL_PP(sybase_result_index),&type); if (type!=php_sybase_module.le_result) { - php_error(E_WARNING,"%d is not a Sybase result index",Z_LVAL_P(sybase_result_index)); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"%d is not a Sybase result index",Z_LVAL_PP(sybase_result_index)); RETURN_FALSE; } @@ -1068,9 +1047,7 @@ static void php_sybase_fetch_hash(INTERNAL_FUNCTION_PARAMETERS) RETURN_FALSE; } - if (array_init(return_value)==FAILURE) { - RETURN_FALSE; - } + array_init(return_value); for (i=0; inum_fields; i++) { ZVAL_ADDREF(result->data[result->cur_row][i]); @@ -1107,30 +1084,30 @@ PHP_FUNCTION(sybase_fetch_array) Move internal row pointer */ PHP_FUNCTION(sybase_data_seek) { - pval *sybase_result_index,*offset; + zval **sybase_result_index, **offset; int type,id; sybase_result *result; - if (ZEND_NUM_ARGS()!=2 || getParameters(ht, 2, &sybase_result_index, &offset)==FAILURE) { + if (ZEND_NUM_ARGS()!=2 || zend_get_parameters_ex(2, &sybase_result_index, &offset) == FAILURE) { WRONG_PARAM_COUNT; } - convert_to_long(sybase_result_index); - id = Z_LVAL_P(sybase_result_index); + convert_to_long_ex(sybase_result_index); + id = Z_LVAL_PP(sybase_result_index); result = (sybase_result *) zend_list_find(id,&type); if (type!=php_sybase_module.le_result) { - php_error(E_WARNING,"%d is not a Sybase result index",id); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"%d is not a Sybase result index",id); RETURN_FALSE; } - convert_to_long(offset); - if (Z_LVAL_P(offset)<0 || Z_LVAL_P(offset)>=result->num_rows) { - php_error(E_WARNING,"Sybase: Bad row offset"); + convert_to_long_ex(offset); + if (Z_LVAL_PP(offset)<0 || Z_LVAL_PP(offset)>=result->num_rows) { + php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Bad row offset"); RETURN_FALSE; } - result->cur_row = Z_LVAL_P(offset); + result->cur_row = Z_LVAL_PP(offset); RETURN_TRUE; } /* }}} */ @@ -1186,35 +1163,35 @@ static char *php_sybase_get_field_name(int type) Get field information */ PHP_FUNCTION(sybase_fetch_field) { - pval *sybase_result_index,*offset; + zval **sybase_result_index, **offset; int type,id,field_offset; sybase_result *result; switch (ZEND_NUM_ARGS()) { case 1: - if (getParameters(ht, 1, &sybase_result_index)==FAILURE) { + if (zend_get_parameters_ex(1, &sybase_result_index) == FAILURE) { RETURN_FALSE; } field_offset=-1; break; case 2: - if (getParameters(ht, 2, &sybase_result_index, &offset)==FAILURE) { + if (zend_get_parameters_ex(2, &sybase_result_index, &offset) == FAILURE) { RETURN_FALSE; } - convert_to_long(offset); - field_offset = Z_LVAL_P(offset); + convert_to_long_ex(offset); + field_offset = Z_LVAL_PP(offset); break; default: WRONG_PARAM_COUNT; break; } - convert_to_long(sybase_result_index); - id = Z_LVAL_P(sybase_result_index); + convert_to_long_ex(sybase_result_index); + id = Z_LVAL_PP(sybase_result_index); result = (sybase_result *) zend_list_find(id,&type); if (type!=php_sybase_module.le_result) { - php_error(E_WARNING,"%d is not a Sybase result index",id); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"%d is not a Sybase result index",id); RETURN_FALSE; } @@ -1225,14 +1202,13 @@ PHP_FUNCTION(sybase_fetch_field) if (field_offset<0 || field_offset >= result->num_fields) { if (ZEND_NUM_ARGS()==2) { /* field specified explicitly */ - php_error(E_WARNING,"Sybase: Bad column offset"); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Bad column offset"); } RETURN_FALSE; } - if (object_init(return_value)==FAILURE) { - RETURN_FALSE; - } + object_init(return_value); + add_property_string(return_value, "name",result->fields[field_offset].name, 1); add_property_long(return_value, "max_length",result->fields[field_offset].max_length); add_property_string(return_value, "column_source",result->fields[field_offset].column_source, 1); @@ -1245,28 +1221,28 @@ PHP_FUNCTION(sybase_fetch_field) Set field offset */ PHP_FUNCTION(sybase_field_seek) { - pval *sybase_result_index,*offset; + zval **sybase_result_index, **offset; int type,id,field_offset; sybase_result *result; - if (ZEND_NUM_ARGS()!=2 || getParameters(ht, 2, &sybase_result_index, &offset)==FAILURE) { + if (ZEND_NUM_ARGS() !=2 || zend_get_parameters_ex(2, &sybase_result_index, &offset) == FAILURE) { WRONG_PARAM_COUNT; } - convert_to_long(sybase_result_index); - id = Z_LVAL_P(sybase_result_index); + convert_to_long_ex(sybase_result_index); + id = Z_LVAL_PP(sybase_result_index); result = (sybase_result *) zend_list_find(id,&type); if (type!=php_sybase_module.le_result) { - php_error(E_WARNING,"%d is not a Sybase result index",id); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"%d is not a Sybase result index",id); RETURN_FALSE; } - convert_to_long(offset); - field_offset = Z_LVAL_P(offset); + convert_to_long_ex(offset); + field_offset = Z_LVAL_PP(offset); if (field_offset<0 || field_offset >= result->num_fields) { - php_error(E_WARNING,"Sybase: Bad column offset"); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Bad column offset"); RETURN_FALSE; } @@ -1279,31 +1255,31 @@ PHP_FUNCTION(sybase_field_seek) Get result data */ PHP_FUNCTION(sybase_result) { - pval *row, *field, *sybase_result_index; + zval **row, **field, **sybase_result_index; int id,type,field_offset=0; sybase_result *result; - if (ZEND_NUM_ARGS()!=3 || getParameters(ht, 3, &sybase_result_index, &row, &field)==FAILURE) { + if (ZEND_NUM_ARGS() !=3 || zend_get_parameters_ex(3, &sybase_result_index, &row, &field) == FAILURE) { WRONG_PARAM_COUNT; } - convert_to_long(sybase_result_index); - id = Z_LVAL_P(sybase_result_index); + convert_to_long_ex(sybase_result_index); + id = Z_LVAL_PP(sybase_result_index); result = (sybase_result *) zend_list_find(id,&type); if (type!=php_sybase_module.le_result) { - php_error(E_WARNING,"%d is not a Sybase result index",id); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"%d is not a Sybase result index",id); RETURN_FALSE; } - convert_to_long(row); - if (Z_LVAL_P(row)<0 || Z_LVAL_P(row)>=result->num_rows) { - php_error(E_WARNING,"Sybase: Bad row offset (%d)",Z_LVAL_P(row)); + convert_to_long_ex(row); + if (Z_LVAL_PP(row)<0 || Z_LVAL_PP(row)>=result->num_rows) { + php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Bad row offset (%d)",Z_LVAL_PP(row)); RETURN_FALSE; } - switch(Z_TYPE_P(field)) { + switch(Z_TYPE_PP(field)) { case IS_STRING: { int i; @@ -1314,22 +1290,22 @@ PHP_FUNCTION(sybase_result) } } if (i>=result->num_fields) { /* no match found */ - php_error(E_WARNING,"Sybase: %s field not found in result",Z_STRVAL_P(field)); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: %s field not found in result",Z_STRVAL_PP(field)); RETURN_FALSE; } break; } default: - convert_to_long(field); - field_offset = Z_LVAL_P(field); + convert_to_long_ex(field); + field_offset = Z_LVAL_PP(field); if (field_offset<0 || field_offset>=result->num_fields) { - php_error(E_WARNING,"Sybase: Bad column offset specified"); + php_error_docref(NULL TSRMLS_CC, E_WARNING,"Sybase: Bad column offset specified"); RETURN_FALSE; } break; } - *return_value = *result->data[Z_LVAL_P(row)][field_offset]; + *return_value = *result->data[Z_LVAL_PP(row)][field_offset]; pval_copy_constructor(return_value); } /* }}} */ @@ -1339,48 +1315,36 @@ PHP_FUNCTION(sybase_result) Get number of affected rows in last query */ PHP_FUNCTION(sybase_affected_rows) { - pval *sybase_link_index = NULL; - sybase_link *sybase_ptr = NULL; - int id = 0; - int type = 0; - - switch(ZEND_NUM_ARGS()) - { - case 0: - { - id = php_sybase_module.default_link; - } - break; - - case 1: - { - if (getParameters(ht, 1, &sybase_link_index)==FAILURE) - { - RETURN_FALSE; - } - - convert_to_long(sybase_link_index); - id = Z_LVAL_P(sybase_link_index); - } - break; - - default: - { - WRONG_PARAM_COUNT; - } - break; - } + zval *sybase_link_index = NULL; + sybase_link *sybase_ptr = NULL; + int id = 0; + int type = 0; + + switch(ZEND_NUM_ARGS()) { + case 0: + id = php_sybase_module.default_link; + break; + case 1: + if (zend_get_parameters_ex(ht, 1, &sybase_link_index) == FAILURE) { + RETURN_FALSE; + } + convert_to_long_ex(sybase_link_index); + id = Z_LVAL_PP(sybase_link_index); + break; + default: + WRONG_PARAM_COUNT; + break; + } - sybase_ptr = (sybase_link *)zend_list_find(id, &type); + sybase_ptr = (sybase_link *)zend_list_find(id, &type); - if(type!=php_sybase_module.le_link && type!=php_sybase_module.le_plink) - { - php_error(E_WARNING,"%d is not a Sybase link index",id); - RETURN_FALSE; - } + if(type != php_sybase_module.le_link && type != php_sybase_module.le_plink) { + php_error_docref(NULL TSRMLS_CC, E_WARNING,"%d is not a Sybase link index",id); + RETURN_FALSE; + } - Z_LVAL_P(return_value) = DBCOUNT(sybase_ptr->link); - Z_TYPE_P(return_value) = IS_LONG; + Z_LVAL_P(return_value) = DBCOUNT(sybase_ptr->link); + Z_TYPE_P(return_value) = IS_LONG; } @@ -1418,13 +1382,13 @@ PHP_MINFO_FUNCTION(sybase) Sets the minimum error severity */ PHP_FUNCTION(sybase_min_error_severity) { - pval *severity; + zval **severity; - if (ZEND_NUM_ARGS()!=1 || getParameters(ht, 1, &severity)==FAILURE) { + if (ZEND_NUM_ARGS() !=1 || zend_get_parameters_ex(1, &severity) == FAILURE) { WRONG_PARAM_COUNT; } - convert_to_long(severity); - php_sybase_module.min_error_severity = Z_LVAL_P(severity); + convert_to_long_ex(severity); + php_sybase_module.min_error_severity = Z_LVAL_PP(severity); } /* }}} */ @@ -1432,13 +1396,13 @@ PHP_FUNCTION(sybase_min_error_severity) Sets the minimum message severity */ PHP_FUNCTION(sybase_min_message_severity) { - pval *severity; + zval **severity; - if (ZEND_NUM_ARGS()!=1 || getParameters(ht, 1, &severity)==FAILURE) { + if (ZEND_NUM_ARGS() !=1 || zend_get_parameters_ex(1, &severity) == FAILURE) { WRONG_PARAM_COUNT; } - convert_to_long(severity); - php_sybase_module.min_message_severity = Z_LVAL_P(severity); + convert_to_long_ex(severity); + php_sybase_module.min_message_severity = Z_LVAL_PP(severity); } /* }}} */