summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TSRM/TSRM.c13
1 files changed, 10 insertions, 3 deletions
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; i<id_count; i++) {
- (*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);
+#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);
+ }
}
}