tony2001                Mon Feb  7 08:30:47 2005 EDT

  Modified files:              
    /php-src/ext/filepro        filepro.c php_filepro.h 
  Log:
  fix leaks on shutdown
  fix leaks appearing when trying to open several "databases"
  
  
http://cvs.php.net/diff.php/php-src/ext/filepro/filepro.c?r1=1.55&r2=1.56&ty=u
Index: php-src/ext/filepro/filepro.c
diff -u php-src/ext/filepro/filepro.c:1.55 php-src/ext/filepro/filepro.c:1.56
--- php-src/ext/filepro/filepro.c:1.55  Thu Jan  8 03:15:26 2004
+++ php-src/ext/filepro/filepro.c       Mon Feb  7 08:30:44 2005
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: filepro.c,v 1.55 2004/01/08 08:15:26 andi Exp $ */
+/* $Id: filepro.c,v 1.56 2005/02/07 13:30:44 tony2001 Exp $ */
 
 /*
   filePro 4.x support developed by Chad Robinson, [EMAIL PROTECTED]
@@ -96,11 +96,43 @@
        fp_globals = (fp_global_struct *) LocalAlloc(LPTR, 
sizeof(fp_global_struct)); 
        TlsSetValue(FPTls, (void *) fp_globals);
 #endif
+
+       return SUCCESS;
+}
+/* }}} */
+
+/* {{{ PHP_RINIT_FUNCTION
+ */
+PHP_RINIT_FUNCTION(filepro)
+{
        FP_GLOBAL(fp_database)=NULL;
        FP_GLOBAL(fp_fcount)=-1;
        FP_GLOBAL(fp_keysize)=-1;
        FP_GLOBAL(fp_fieldlist)=NULL;
+ 
+       return SUCCESS;
+}
+/* }}} */
+
+/* {{{ PHP_RSHUTDOWN_FUNCTION
+ */
+PHP_RSHUTDOWN_FUNCTION(filepro)
+{
+       FP_FIELD *tmp, *next;
 
+       if (FP_GLOBAL(fp_database)) {
+               efree(FP_GLOBAL(fp_database));
+       }
+       
+       if (FP_GLOBAL(fp_fieldlist)) {
+               for (tmp = FP_GLOBAL(fp_fieldlist); tmp;) {
+                       efree(tmp->name);
+                       efree(tmp->format);
+                       next = tmp->next;
+                       efree(tmp);
+                       tmp=next;
+               }       
+       }
        return SUCCESS;
 }
 /* }}} */
@@ -143,7 +175,15 @@
 
 zend_module_entry filepro_module_entry = {
        STANDARD_MODULE_HEADER,
-       "filepro", filepro_functions, PHP_MINIT(filepro), 
PHP_MSHUTDOWN(filepro), NULL, NULL, NULL, NO_VERSION_YET, 
STANDARD_MODULE_PROPERTIES
+       "filepro", 
+       filepro_functions, 
+       PHP_MINIT(filepro), 
+       PHP_MSHUTDOWN(filepro), 
+       PHP_RINIT(filepro), 
+       PHP_RSHUTDOWN(filepro), 
+       NULL, 
+       NO_VERSION_YET, 
+       STANDARD_MODULE_PROPERTIES
 };
 
 
@@ -214,6 +254,8 @@
        tmp = FP_GLOBAL(fp_fieldlist);
        while (tmp != NULL) {
                next = tmp->next;
+               efree(tmp->name);
+               efree(tmp->format);
                efree(tmp);
                tmp = next;
        } 
http://cvs.php.net/diff.php/php-src/ext/filepro/php_filepro.h?r1=1.12&r2=1.13&ty=u
Index: php-src/ext/filepro/php_filepro.h
diff -u php-src/ext/filepro/php_filepro.h:1.12 
php-src/ext/filepro/php_filepro.h:1.13
--- php-src/ext/filepro/php_filepro.h:1.12      Thu Jan  8 12:32:07 2004
+++ php-src/ext/filepro/php_filepro.h   Mon Feb  7 08:30:45 2005
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_filepro.h,v 1.12 2004/01/08 17:32:07 sniper Exp $ */
+/* $Id: php_filepro.h,v 1.13 2005/02/07 13:30:45 tony2001 Exp $ */
 
 /*
   filePro 4.x support developed by Chad Robinson, [EMAIL PROTECTED]
@@ -41,6 +41,8 @@
 PHP_FUNCTION(filepro_retrieve);
 
 PHP_MINIT_FUNCTION(filepro);
+PHP_RINIT_FUNCTION(filepro);
+PHP_RSHUTDOWN_FUNCTION(filepro);
 PHP_MSHUTDOWN_FUNCTION(filepro);
 #else
 #define phpext_filepro_ptr NULL

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to