From: Marcus Boerger Date: Thu, 13 May 2004 06:53:21 +0000 (+0000) Subject: - Once ts_free_id() will be used, we cannot call ctors for deleted ids X-Git-Tag: RELEASE_0_1~211 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fbb28b36b7946b0435997f516988ffb90fd1e144;p=php - Once ts_free_id() will be used, we cannot call ctors for deleted ids when creating new threads. --- diff --git a/TSRM/TSRM.c b/TSRM/TSRM.c index 3369c5e69b..b107dcc543 100644 --- a/TSRM/TSRM.c +++ b/TSRM/TSRM.c @@ -283,9 +283,16 @@ static void allocate_new_resource(tsrm_tls_entry **thread_resources_ptr, THREAD_ tsrm_new_thread_begin_handler(thread_id, &((*thread_resources_ptr)->storage)); } for (i=0; istorage[i] = (void *) malloc(resource_types_table[i].size); - if (resource_types_table[i].ctor) { - resource_types_table[i].ctor((*thread_resources_ptr)->storage[i], &(*thread_resources_ptr)->storage); +#if MBO_0 + if (resource_types_table[i].done) { + thread_resources_ptr)->storage[i] = NULL; + } else +#endif + { + (*thread_resources_ptr)->storage[i] = (void *) malloc(resource_types_table[i].size); + if (resource_types_table[i].ctor) { + resource_types_table[i].ctor((*thread_resources_ptr)->storage[i], &(*thread_resources_ptr)->storage); + } } }