]> granicus.if.org Git - php/commitdiff
Removed pointless checks around array_init() & ZE memory allocation macros.
authorIlia Alshanetsky <iliaa@php.net>
Wed, 15 Jan 2003 02:31:16 +0000 (02:31 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Wed, 15 Jan 2003 02:31:16 +0000 (02:31 +0000)
Changed php_error to php_error_docref.
Dropped getParam* parameter parsing API in favor of zend_get_parameters*.

ext/dbase/dbase.c

index 89ea034f9692fa5361e2bfae35a6eea3226677ea..a9744f4836db89762c704ddf02fc515dd5de3ac9 100644 (file)
@@ -118,28 +118,28 @@ static PHP_MSHUTDOWN_FUNCTION(dbase)
    Opens a dBase-format database file */
 PHP_FUNCTION(dbase_open)
 {
-       pval *dbf_name, *options;
+       zval **dbf_name, **options;
        dbhead_t *dbh;
        int handle;
        DBase_TLS_VARS;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &dbf_name, &options)==FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &dbf_name, &options) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_string(dbf_name);
-       convert_to_long(options);
+       convert_to_string_ex(dbf_name);
+       convert_to_long_ex(options);
 
-       if (PG(safe_mode) && (!php_checkuid(Z_STRVAL_P(dbf_name), NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
+       if (PG(safe_mode) && (!php_checkuid(Z_STRVAL_PP(dbf_name), NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
                RETURN_FALSE;
        }
        
-       if (php_check_open_basedir(Z_STRVAL_P(dbf_name) TSRMLS_CC)) {
+       if (php_check_open_basedir(Z_STRVAL_PP(dbf_name) TSRMLS_CC)) {
                RETURN_FALSE;
        }
 
-       dbh = dbf_open(Z_STRVAL_P(dbf_name), Z_LVAL_P(options) TSRMLS_CC);
+       dbh = dbf_open(Z_STRVAL_P(dbf_name), Z_LVAL_PP(options) TSRMLS_CC);
        if (dbh == NULL) {
-               php_error(E_WARNING, "unable to open database %s", Z_STRVAL_P(dbf_name));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to open database %s", Z_STRVAL_PP(dbf_name));
                RETURN_FALSE;
        }
 
@@ -152,22 +152,22 @@ PHP_FUNCTION(dbase_open)
    Closes an open dBase-format database file */
 PHP_FUNCTION(dbase_close)
 {
-       pval *dbh_id;
+       zval **dbh_id;
        dbhead_t *dbh;
        int dbh_type;
        DBase_TLS_VARS;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &dbh_id)==FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || (zend_get_parameters_ex(1, &dbh_id) == FAILURE)) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(dbh_id);
-       dbh = zend_list_find(Z_LVAL_P(dbh_id), &dbh_type);
+       convert_to_long_ex(dbh_id);
+       dbh = zend_list_find(Z_LVAL_PP(dbh_id), &dbh_type);
        if (!dbh || dbh_type != DBase_GLOBAL(le_dbhead)) {
-               php_error(E_WARNING, "Unable to find database for identifier %d", Z_LVAL_P(dbh_id));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find database for identifier %d", Z_LVAL_PP(dbh_id));
                RETURN_FALSE;
        }
 
-       zend_list_delete(Z_LVAL_P(dbh_id));
+       zend_list_delete(Z_LVAL_PP(dbh_id));
        RETURN_TRUE;
 }
 /* }}} */
@@ -176,18 +176,18 @@ PHP_FUNCTION(dbase_close)
    Returns the number of records in the database */
 PHP_FUNCTION(dbase_numrecords)
 {
-       pval *dbh_id;
+       zval **dbh_id;
        dbhead_t *dbh;
        int dbh_type;
        DBase_TLS_VARS;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &dbh_id)==FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || (zend_get_parameters_ex(1, &dbh_id) == FAILURE)) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(dbh_id);
-       dbh = zend_list_find(Z_LVAL_P(dbh_id), &dbh_type);
+       convert_to_long_ex(dbh_id);
+       dbh = zend_list_find(Z_LVAL_PP(dbh_id), &dbh_type);
        if (!dbh || dbh_type != DBase_GLOBAL(le_dbhead)) {
-               php_error(E_WARNING, "Unable to find database for identifier %d", Z_LVAL_P(dbh_id));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find database for identifier %d", Z_LVAL_PP(dbh_id));
                RETURN_FALSE;
        }
 
@@ -199,18 +199,18 @@ PHP_FUNCTION(dbase_numrecords)
    Returns the number of fields (columns) in the database */
 PHP_FUNCTION(dbase_numfields)
 {
-       pval *dbh_id;
+       zval **dbh_id;
        dbhead_t *dbh;
        int dbh_type;
        DBase_TLS_VARS;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &dbh_id)==FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &dbh_id) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(dbh_id);
-       dbh = zend_list_find(Z_LVAL_P(dbh_id), &dbh_type);
+       convert_to_long_ex(dbh_id);
+       dbh = zend_list_find(Z_LVAL_PP(dbh_id), &dbh_type);
        if (!dbh || dbh_type != DBase_GLOBAL(le_dbhead)) {
-               php_error(E_WARNING, "Unable to find database for identifier %d", Z_LVAL_P(dbh_id));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find database for identifier %d", Z_LVAL_PP(dbh_id));
                RETURN_FALSE;
        }
 
@@ -222,18 +222,18 @@ PHP_FUNCTION(dbase_numfields)
    Packs the database (deletes records marked for deletion) */
 PHP_FUNCTION(dbase_pack)
 {
-       pval *dbh_id;
+       zval **dbh_id;
        dbhead_t *dbh;
        int dbh_type;
        DBase_TLS_VARS;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &dbh_id)==FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &dbh_id) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(dbh_id);
-       dbh = zend_list_find(Z_LVAL_P(dbh_id), &dbh_type);
+       convert_to_long_ex(dbh_id);
+       dbh = zend_list_find(Z_LVAL_PP(dbh_id), &dbh_type);
        if (!dbh || dbh_type != DBase_GLOBAL(le_dbhead)) {
-               php_error(E_WARNING, "Unable to find database for identifier %d", Z_LVAL_P(dbh_id));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find database for identifier %d", Z_LVAL_PP(dbh_id));
                RETURN_FALSE;
        }
 
@@ -247,7 +247,7 @@ PHP_FUNCTION(dbase_pack)
    Adds a record to the database */
 PHP_FUNCTION(dbase_add_record)
 {
-       pval *dbh_id, *fields, **field;
+       zval **dbh_id, **fields, **field;
        dbhead_t *dbh;
        int dbh_type;
 
@@ -257,40 +257,36 @@ PHP_FUNCTION(dbase_add_record)
        int i;
        DBase_TLS_VARS;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &dbh_id, &fields)==FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &dbh_id, &fields) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(dbh_id);
-       if (Z_TYPE_P(fields) != IS_ARRAY) {
-               php_error(E_WARNING, "Expected array as second parameter");
+       convert_to_long_ex(dbh_id);
+       if (Z_TYPE_PP(fields) != IS_ARRAY) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expected array as second parameter");
                RETURN_FALSE;
        }
 
-       dbh = zend_list_find(Z_LVAL_P(dbh_id), &dbh_type);
+       dbh = zend_list_find(Z_LVAL_PP(dbh_id), &dbh_type);
        if (!dbh || dbh_type != DBase_GLOBAL(le_dbhead)) {
-               php_error(E_WARNING, "Unable to find database for identifier %d", Z_LVAL_P(dbh_id));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find database for identifier %d", Z_LVAL_PP(dbh_id));
                RETURN_FALSE;
        }
 
-       num_fields = zend_hash_num_elements(Z_ARRVAL_P(fields));
+       num_fields = zend_hash_num_elements(Z_ARRVAL_PP(fields));
 
        if (num_fields != dbh->db_nfields) {
-               php_error(E_WARNING, "Wrong number of fields specified");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Wrong number of fields specified");
                RETURN_FALSE;
        }
 
        cp = t_cp = (char *)emalloc(dbh->db_rlen + 1);
-       if (!cp) {
-               php_error(E_WARNING, "unable to allocate memory");
-               RETURN_FALSE;
-       }
        *t_cp++ = VALID_RECORD;
 
        dbf = dbh->db_fields;
        for (i = 0, cur_f = dbf; cur_f < &dbf[num_fields]; i++, cur_f++) {
                zval tmp;
-               if (zend_hash_index_find(Z_ARRVAL_P(fields), i, (void **)&field) == FAILURE) {
-                       php_error(E_WARNING, "unexpected error");
+               if (zend_hash_index_find(Z_ARRVAL_PP(fields), i, (void **)&field) == FAILURE) {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "unexpected error");
                        efree(cp);
                        RETURN_FALSE;
                }
@@ -305,7 +301,7 @@ PHP_FUNCTION(dbase_add_record)
 
        dbh->db_records++;
        if (put_dbf_record(dbh, dbh->db_records, cp) < 0) {
-               php_error(E_WARNING, "unable to put record at %ld", dbh->db_records);
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to put record at %ld", dbh->db_records);
                efree(cp);
                RETURN_FALSE;
        }
@@ -321,7 +317,7 @@ PHP_FUNCTION(dbase_add_record)
    Replaces a record to the database */
 PHP_FUNCTION(dbase_replace_record)
 {
-       pval *dbh_id, *fields, **field, *recnum;
+       zval **dbh_id, *fields, **field, **recnum;
        dbhead_t *dbh;
        int dbh_type;
 
@@ -331,40 +327,36 @@ PHP_FUNCTION(dbase_replace_record)
        int i;
        DBase_TLS_VARS;
 
-       if (ZEND_NUM_ARGS() != 3 || getParameters(ht, 3, &dbh_id, &fields, &recnum)==FAILURE) {
+       if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &dbh_id, &fields, &recnum) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(dbh_id);
-       convert_to_long(recnum);
-       if (Z_TYPE_P(fields) != IS_ARRAY) {
-               php_error(E_WARNING, "Expected array as second parameter");
+       convert_to_long_ex(dbh_id);
+       convert_to_long_ex(recnum);
+       if (Z_TYPE_PP(fields) != IS_ARRAY) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expected array as second parameter");
                RETURN_FALSE;
        }
 
-       dbh = zend_list_find(Z_LVAL_P(dbh_id), &dbh_type);
+       dbh = zend_list_find(Z_LVAL_PP(dbh_id), &dbh_type);
        if (!dbh || dbh_type != DBase_GLOBAL(le_dbhead)) {
-               php_error(E_WARNING, "Unable to find database for identifier %d", Z_LVAL_P(dbh_id));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find database for identifier %d", Z_LVAL_PP(dbh_id));
                RETURN_FALSE;
        }
 
-       num_fields = zend_hash_num_elements(Z_ARRVAL_P(fields));
+       num_fields = zend_hash_num_elements(Z_ARRVAL_PP(fields));
 
        if (num_fields != dbh->db_nfields) {
-               php_error(E_WARNING, "Wrong number of fields specified");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Wrong number of fields specified");
                RETURN_FALSE;
        }
 
        cp = t_cp = (char *)emalloc(dbh->db_rlen + 1);
-       if (!cp) {
-               php_error(E_WARNING, "unable to allocate memory");
-               RETURN_FALSE;
-       }
        *t_cp++ = VALID_RECORD;
 
        dbf = dbh->db_fields;
        for (i = 0, cur_f = dbf; cur_f < &dbf[num_fields]; i++, cur_f++) {
-               if (zend_hash_index_find(Z_ARRVAL_P(fields), i, (void **)&field) == FAILURE) {
-                       php_error(E_WARNING, "unexpected error");
+               if (zend_hash_index_find(Z_ARRVAL_PP(fields), i, (void **)&field) == FAILURE) {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "unexpected error");
                        efree(cp);
                        RETURN_FALSE;
                }
@@ -373,8 +365,8 @@ PHP_FUNCTION(dbase_replace_record)
                t_cp += cur_f->db_flen;
        }
 
-       if (put_dbf_record(dbh, Z_LVAL_P(recnum), cp) < 0) {
-               php_error(E_WARNING, "unable to put record at %ld", dbh->db_records);
+       if (put_dbf_record(dbh, Z_LVAL_PP(recnum), cp) < 0) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to put record at %ld", dbh->db_records);
                efree(cp);
                RETURN_FALSE;
        }
@@ -390,28 +382,28 @@ PHP_FUNCTION(dbase_replace_record)
    Marks a record to be deleted */
 PHP_FUNCTION(dbase_delete_record)
 {
-       pval *dbh_id, *record;
+       zval **dbh_id, **record;
        dbhead_t *dbh;
        int dbh_type;
        DBase_TLS_VARS;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &dbh_id, &record)==FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || (zend_get_parameters_ex(2, &dbh_id, &record) == FAILURE)) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(dbh_id);
-       convert_to_long(record);
+       convert_to_long_ex(dbh_id);
+       convert_to_long_ex(record);
 
-       dbh = zend_list_find(Z_LVAL_P(dbh_id), &dbh_type);
+       dbh = zend_list_find(Z_LVAL_PP(dbh_id), &dbh_type);
        if (!dbh || dbh_type != DBase_GLOBAL(le_dbhead)) {
-               php_error(E_WARNING, "Unable to find database for identifier %d", Z_LVAL_P(dbh_id));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find database for identifier %d", Z_LVAL_P(dbh_id));
                RETURN_FALSE;
        }
 
-       if (del_dbf_record(dbh, Z_LVAL_P(record)) < 0) {
-               if (Z_LVAL_P(record) > dbh->db_records) {
-                       php_error(E_WARNING, "record %d out of bounds", Z_LVAL_P(record));
+       if (del_dbf_record(dbh, Z_LVAL_PP(record)) < 0) {
+               if (Z_LVAL_PP(record) > dbh->db_records) {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "record %d out of bounds", Z_LVAL_PP(record));
                } else {
-                       php_error(E_WARNING, "unable to delete record %d", Z_LVAL_P(record));
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to delete record %d", Z_LVAL_PP(record));
                }
                RETURN_FALSE;
        }
@@ -435,28 +427,26 @@ static void php_dbase_get_record(INTERNAL_FUNCTION_PARAMETERS, int assoc)
        int errno_save;
        DBase_TLS_VARS;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &dbh_id, &record)==FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || (zend_get_parameters_ex(2, &dbh_id, &record) == FAILURE)) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(dbh_id);
-       convert_to_long(record);
+       convert_to_long_ex(dbh_id);
+       convert_to_long_ex(record);
 
-       dbh = zend_list_find(Z_LVAL_P(dbh_id), &dbh_type);
+       dbh = zend_list_find(Z_LVAL_PP(dbh_id), &dbh_type);
        if (!dbh || dbh_type != DBase_GLOBAL(le_dbhead)) {
-               php_error(E_WARNING, "Unable to find database for identifier %d", Z_LVAL_P(dbh_id));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find database for identifier %d", Z_LVAL_PP(dbh_id));
                RETURN_FALSE;
        }
 
-       if ((data = get_dbf_record(dbh, Z_LVAL_P(record))) == NULL) {
-               php_error(E_WARNING, "Tried to read bad record %d", Z_LVAL_P(record));
+       if ((data = get_dbf_record(dbh, Z_LVAL_PP(record))) == NULL) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Tried to read bad record %d", Z_LVAL_PP(record));
                RETURN_FALSE;
        }
 
        dbf = dbh->db_fields;
 
-       if (array_init(return_value) == FAILURE) {
-               RETURN_FALSE;
-       }
+       array_init(return_value);
 
        fnp = NULL;
        for (cur_f = dbf; cur_f < &dbf[dbh->db_nfields]; cur_f++) {
@@ -577,7 +567,7 @@ PHP_FUNCTION(dbase_get_record_with_names)
    Creates a new dBase-format database file */
 PHP_FUNCTION(dbase_create)
 {
-       pval *filename, *fields, **field, **value;
+       zval **filename, **fields, **field, **value;
        int fd;
        dbhead_t *dbh;
 
@@ -586,37 +576,37 @@ PHP_FUNCTION(dbase_create)
        int i, rlen, handle;
        DBase_TLS_VARS;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &filename, &fields)==FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || (zend_get_parameters_ex(2, &filename, &fields) == FAILURE)) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_string(filename);
+       convert_to_string_ex(filename);
 
-       if (Z_TYPE_P(fields) != IS_ARRAY) {
-               php_error(E_WARNING, "Expected array as second parameter");
+       if (Z_TYPE_PP(fields) != IS_ARRAY) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expected array as second parameter");
                RETURN_FALSE;
        }
 
-       if (PG(safe_mode) && (!php_checkuid(Z_STRVAL_P(filename), NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
+       if (PG(safe_mode) && (!php_checkuid(Z_STRVAL_PP(filename), NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
                RETURN_FALSE;
        }
        
-       if (php_check_open_basedir(Z_STRVAL_P(filename) TSRMLS_CC)) {
+       if (php_check_open_basedir(Z_STRVAL_PP(filename) TSRMLS_CC)) {
                RETURN_FALSE;
        }
 
-       if ((fd = VCWD_OPEN_MODE(Z_STRVAL_P(filename), O_BINARY|O_RDWR|O_CREAT, 0644)) < 0) {
-               php_error(E_WARNING, "Unable to create database (%d): %s", errno, strerror(errno));
+       if ((fd = VCWD_OPEN_MODE(Z_STRVAL_PP(filename), O_BINARY|O_RDWR|O_CREAT, 0644)) < 0) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to create database (%d): %s", errno, strerror(errno));
                RETURN_FALSE;
        }
 
-       num_fields = zend_hash_num_elements(Z_ARRVAL_P(fields));
+       num_fields = zend_hash_num_elements(Z_ARRVAL_PP(fields));
 
        /* have to use regular malloc() because this gets free()d by
           code in the dbase library */
        dbh = (dbhead_t *)malloc(sizeof(dbhead_t));
        dbf = (dbfield_t *)malloc(sizeof(dbfield_t) * num_fields);
        if (!dbh || !dbf) {
-               php_error(E_WARNING, "Unable to allocate memory for header info");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to allocate memory for header info");
                RETURN_FALSE;
        }
        
@@ -646,27 +636,27 @@ PHP_FUNCTION(dbase_create)
 
        for (i = 0, cur_f = dbf; i < num_fields; i++, cur_f++) {
                /* look up the first field */
-               if (zend_hash_index_find(Z_ARRVAL_P(fields), i, (void **)&field) == FAILURE) {
-                       php_error(E_WARNING, "unable to find field %d", i);
+               if (zend_hash_index_find(Z_ARRVAL_PP(fields), i, (void **)&field) == FAILURE) {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to find field %d", i);
                        free_dbf_head(dbh);
                        RETURN_FALSE;
                }
 
                if (Z_TYPE_PP (field) != IS_ARRAY) {
-                       php_error(E_WARNING, "second parameter must be array of arrays");
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "second parameter must be array of arrays");
                        free_dbf_head(dbh);
                        RETURN_FALSE;
                }
 
                /* field name */
                if (zend_hash_index_find(Z_ARRVAL_PP(field), 0, (void **)&value) == FAILURE) {
-                       php_error(E_WARNING, "expected field name as first element of list in field %d", i);
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "expected field name as first element of list in field %d", i);
                        free_dbf_head(dbh);
                        RETURN_FALSE;
                }
                convert_to_string_ex(value);
                if (Z_STRLEN_PP(value) > 10 || Z_STRLEN_PP(value) == 0) {
-                       php_error(E_WARNING, "invalid field name '%s' (must be non-empty and less than or equal to 10 characters)", Z_STRVAL_PP(value));
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid field name '%s' (must be non-empty and less than or equal to 10 characters)", Z_STRVAL_PP(value));
                        free_dbf_head(dbh);
                        RETURN_FALSE;
                }
@@ -674,7 +664,7 @@ PHP_FUNCTION(dbase_create)
 
                /* field type */
                if (zend_hash_index_find(Z_ARRVAL_PP (field), 1, (void **)&value) == FAILURE) {
-                       php_error(E_WARNING, "expected field type as sececond element of list in field %d", i);
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "expected field type as sececond element of list in field %d", i);
                        RETURN_FALSE;
                }
                convert_to_string_ex(value);
@@ -699,7 +689,7 @@ PHP_FUNCTION(dbase_create)
                case 'C':
                        /* field length */
                        if (zend_hash_index_find(Z_ARRVAL_PP (field), 2, (void **)&value) == FAILURE) {
-                               php_error(E_WARNING, "expected field length as third element of list in field %d", i);
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, "expected field length as third element of list in field %d", i);
                                free_dbf_head(dbh);
                                RETURN_FALSE;
                        }
@@ -708,7 +698,7 @@ PHP_FUNCTION(dbase_create)
 
                        if (cur_f->db_type == 'N') {
                                if (zend_hash_index_find(Z_ARRVAL_PP (field), 3, (void **)&value) == FAILURE) {
-                                       php_error(E_WARNING, "expected field precision as fourth element of list in field %d", i);
+                                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "expected field precision as fourth element of list in field %d", i);
                                        free_dbf_head(dbh);
                                        RETURN_FALSE;
                                }
@@ -717,7 +707,7 @@ PHP_FUNCTION(dbase_create)
                        }
                        break;
                default:
-                       php_error(E_WARNING, "unknown field type '%c'", cur_f->db_type);
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown field type '%c'", cur_f->db_type);
                }
                cur_f->db_foffset = rlen;
                rlen += cur_f->db_flen;