From: Thies C. Arntzen Date: Mon, 12 Jul 1999 10:36:19 +0000 (+0000) Subject: small php4 fixes X-Git-Tag: php-4.0b1~157 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5a288ffdc8cf4101689d47938dcc397867d86386;p=php small php4 fixes --- diff --git a/ext/oci8/oci8.c b/ext/oci8/oci8.c index e8685e908f..ce7e10adcc 100644 --- a/ext/oci8/oci8.c +++ b/ext/oci8/oci8.c @@ -71,9 +71,11 @@ #include "internal_functions.h" #include "php3_list.h" #include "head.h" + #define HASH_DTOR (void (*)(void *)) #else #include "ext/standard/head.h" #define php3tls_pval_destructor(a) zval_dtor(a) + #define HASH_DTOR (int (*)(void *)) #endif @@ -174,7 +176,7 @@ static void oci8_debug(const char *format,...); static void _oci8_close_conn(oci8_connection *connection); static void _oci8_free_stmt(oci8_statement *statement); static void _oci8_free_column(oci8_out_column *column); -static void _oci8_free_descr(oci8_descriptor *descr); +static int _oci8_free_descr(oci8_descriptor *descr); static oci8_connection *oci8_get_conn(int, const char *, HashTable *); static oci8_statement *oci8_get_stmt(int, const char *, HashTable *); @@ -592,7 +594,7 @@ oci8_free_define(oci8_define *define) efree(define->name); define->name = 0; } - return 0; + return 1; } /* }}} */ @@ -888,7 +890,9 @@ oci8_make_pval(pval *value,oci8_statement *statement,oci8_out_column *column, ch oci8_debug("oci8_make_pval: %16s,retlen = %4d,cb_retlen = %d,storage_size4 = %4d,indicator %4d, retcode = %4d", column->name,column->retlen,column->cb_retlen,column->storage_size4,column->indicator,column->retcode); +/* memset(value,0,sizeof(pval)); +*/ if (column->indicator == -1) { /* column is NULL */ var_reset(value); /* XXX we NEED to make sure that there's no data attached to this yet!!! */ @@ -1112,7 +1116,7 @@ oci8_execute(oci8_statement *statement, char *func,ub4 mode, HashTable *list) statement->columns = emalloc(sizeof(HashTable)); if (!statement->columns || - _php3_hash_init(statement->columns, 13, NULL,(void (*)(void *))_oci8_free_column, 0) == FAILURE) { + _php3_hash_init(statement->columns, 13, NULL,HASH_DTOR _oci8_free_column, 0) == FAILURE) { /* out of memory */ return 0; } @@ -1423,7 +1427,7 @@ oci8_fetch(oci8_statement *statement, ub4 nrows, char *func) if (! column->define) { continue; } - + php3tls_pval_destructor(column->define->pval); oci8_make_pval(column->define->pval,statement,column,"OCIFetch",0); @@ -1994,7 +1998,7 @@ _oci8_close_user(oci8_session *session) /* {{{ _oci8_free_descr() */ -static void +static int _oci8_free_descr(oci8_descriptor *descr) { OCI8_TLS_VARS; @@ -2002,6 +2006,8 @@ _oci8_free_descr(oci8_descriptor *descr) oci8_debug("oci8_free_descr: %x",descr->ocidescr); OCIDescriptorFree(descr->ocidescr, descr->type); + + return 1; } /* }}} */ /* {{{ oci8_open_server() @@ -2285,7 +2291,7 @@ static void oci8_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent,int excl connection->descriptors = emalloc(sizeof(HashTable)); if (!connection->descriptors || - _php3_hash_init(connection->descriptors, 13, NULL,(void (*)(void *))_oci8_free_descr, 0) == FAILURE) { + _php3_hash_init(connection->descriptors, 13, NULL,HASH_DTOR _oci8_free_descr, 0) == FAILURE) { goto CLEANUP; } @@ -2348,7 +2354,7 @@ PHP_FUNCTION(oci8_definebyname) if (statement->defines == NULL) { statement->defines = emalloc(sizeof(HashTable)); if (statement->defines == NULL || - _php3_hash_init(statement->defines, 13, NULL, (void (*)(void *))oci8_free_define, 0) == FAILURE) { + _php3_hash_init(statement->defines, 13, NULL,HASH_DTOR oci8_free_define, 0) == FAILURE) { /* out of memory */ RETURN_FALSE; } @@ -3166,11 +3172,11 @@ PHP_FUNCTION(oci8_fetchinto) #if PHP_API_VERSION >= 19990421 element = emalloc(sizeof(pval)); - INIT_PZVAL(element); #endif if ((mode & OCI_NUM) || (! (mode & OCI_ASSOC))) { /* OCI_NUM is default */ oci8_make_pval(element,statement,column, "OCIFetchInto",mode); + #if PHP_API_VERSION >= 19990421 INIT_PZVAL(element); _php3_hash_index_update(array->value.ht, i, (void *)&element, sizeof(pval*), NULL); @@ -3183,6 +3189,7 @@ PHP_FUNCTION(oci8_fetchinto) oci8_make_pval(element,statement,column, "OCIFetchInto",mode); #if PHP_API_VERSION >= 19990421 + INIT_PZVAL(element); _php3_hash_update(array->value.ht, column->name, column->name_len+1, (void *)&element, sizeof(pval*), NULL); #else _php3_hash_update(array->value.ht, column->name, column->name_len+1, (void *)element, sizeof(pval), NULL);