]> granicus.if.org Git - php/commitdiff
License
authorZeev Suraski <zeev@php.net>
Fri, 23 Apr 1999 11:00:02 +0000 (11:00 +0000)
committerZeev Suraski <zeev@php.net>
Fri, 23 Apr 1999 11:00:02 +0000 (11:00 +0000)
TSRM/TSRM.c
TSRM/TSRM.h

index 6ffc2e478dffbf044e94844c3036e99bbae5b91a..50928562e4d6afc3477eb70ade8d76e2655d241d 100644 (file)
@@ -1,3 +1,19 @@
+/*
+   +----------------------------------------------------------------------+
+   | Thread Safe Resource Manager                                         |
+   +----------------------------------------------------------------------+
+   | Copyright (c) 1998, 1999 Zeev Suraski                                |
+   +----------------------------------------------------------------------+
+   | This source file is subject to the Zend license, that is bundled     |
+   | with this package in the file LICENSE.  If you did not receive a     |
+   | copy of the Zend license, please mail us at zend@zend.com so we can  |
+   | send you a copy immediately.                                         |
+   +----------------------------------------------------------------------+
+   | Author:  Zeev Suraski <zeev@zend.com>                                |
+   +----------------------------------------------------------------------+
+*/
+
+
 #include "TSRM.h"
 #include <stdio.h>
 
@@ -129,6 +145,9 @@ TSRM_FUNC ts_rsrc_id ts_allocate_id(size_t size, void (*ctor)(void *resource), v
                                p->storage = realloc(p->storage, sizeof(void *)*id_count);
                                for (j=p->count; j<id_count; j++) {
                                        p->storage[j] = (void *) malloc(resource_types_table[j].size);
+                                       if (resource_types_table[j].ctor) {
+                                               resource_types_table[j].ctor(p->storage[j]);
+                                       }
                                }
                                p->count = id_count;
                        }
@@ -153,7 +172,9 @@ static void allocate_new_resource(tsrm_tls_entry **thread_resources_ptr, THREAD_
        (*thread_resources_ptr)->next = NULL;
        for (i=0; i<id_count; i++) {
                (*thread_resources_ptr)->storage[i] = (void *) malloc(resource_types_table[i].size);
-               resource_types_table[i].ctor((*thread_resources_ptr)->storage[i]);
+               if (resource_types_table[i].ctor) {
+                       resource_types_table[i].ctor((*thread_resources_ptr)->storage[i]);
+               }
        }
 }
 
@@ -216,7 +237,9 @@ void ts_free_thread()
                        int i;
 
                        for (i=0; i<thread_resources->count; i++) {
-                               resource_types_table[i].dtor(thread_resources->storage[i]);
+                               if (resource_types_table[i].dtor) {
+                                       resource_types_table[i].dtor(thread_resources->storage[i]);
+                               }
                                free(thread_resources->storage[i]);
                        }
                        free(thread_resources->storage);
index 3591dc2b0483934a306acd5091b9f40243b72a5d..aec84fe7e60ace6dc9899657e875f551e65489ae 100644 (file)
@@ -1,3 +1,19 @@
+/*
+   +----------------------------------------------------------------------+
+   | Thread Safe Resource Manager                                         |
+   +----------------------------------------------------------------------+
+   | Copyright (c) 1998, 1999 Zeev Suraski                                |
+   +----------------------------------------------------------------------+
+   | This source file is subject to the Zend license, that is bundled     |
+   | with this package in the file LICENSE.  If you did not receive a     |
+   | copy of the Zend license, please mail us at zend@zend.com so we can  |
+   | send you a copy immediately.                                         |
+   +----------------------------------------------------------------------+
+   | Author:  Zeev Suraski <zeev@zend.com>                                |
+   +----------------------------------------------------------------------+
+*/
+
+
 #ifndef _TSRM_H
 #define _TSRM_H