]> granicus.if.org Git - php/commitdiff
if skip param of dba_fetch is -1 stop do not restart search after last element
authorMarcus Boerger <helly@php.net>
Wed, 26 Feb 2003 22:03:00 +0000 (22:03 +0000)
committerMarcus Boerger <helly@php.net>
Wed, 26 Feb 2003 22:03:00 +0000 (22:03 +0000)
ext/dba/libinifile/inifile.c

index 406798302ec0d01b13dfe0038552a74b59a40b4f..2a50c9e884dadc67eeb55b6eae76263165f1db45 100644 (file)
@@ -261,8 +261,8 @@ val_type inifile_fetch(inifile *dba, const key_type *key, int skip TSRMLS_DC) {
                /* specific instance or not same key -> restart search */
                /* the slow way: restart and seacrch */
                php_stream_rewind(dba->fp);
+               inifile_line_free(&dba->next);
        }
-       inifile_line_free(&dba->next);
        if (skip == -1) {
                skip = 0;
        }
@@ -273,7 +273,7 @@ val_type inifile_fetch(inifile *dba, const key_type *key, int skip TSRMLS_DC) {
                                /* allow faster access by updating key read into next */
                                inifile_line_free(&dba->next);
                                dba->next = ln;
-                               dba->next.pos = php_stream_tell(dba->fp);;
+                               dba->next.pos = php_stream_tell(dba->fp);
                                return val;
                        }
                        skip--;
@@ -285,7 +285,7 @@ val_type inifile_fetch(inifile *dba, const key_type *key, int skip TSRMLS_DC) {
                }
        }
        inifile_line_free(&ln);
-       inifile_line_free(&dba->next);
+       dba->next.pos = php_stream_tell(dba->fp);
        return ln.val;
 }
 /* }}} */