diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2016-12-20 10:41:40 +0300 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2016-12-20 10:41:40 +0300 |
commit | 222f83721c658b5d8466f9a9ab9367900ed71868 (patch) | |
tree | 4ae44f4721699b3a796978240a5e6869a1f18c0b /blacklst.c | |
parent | 5732651cfc04c3a5dbe044bbf4869e6701c44b17 (diff) | |
download | bdwgc-222f83721c658b5d8466f9a9ab9367900ed71868.tar.gz |
Workaround 'resource leak' false positives in alloc_MS, bl/envfile_init
* blacklst.c (GC_bl_init): Add assertion that GC_old_stack_bl and
GC_incomplete_stack_bl are both null prior to their assignment (to the
result of GC_scratch_alloc).
* mark.c (alloc_mark_stack): Replace GC_mark_stack_size!=0 with
GC_mark_stack!=NULL (to ensure no memory leak when GC_mark_stack is
assigned for the first time).
* misc.c [GC_READ_ENV_FILE && (MSWIN32 || MSWINCE || CYGWIN32)]
(GC_envfile_init): Add assertion that GC_envfile_content is null prior
to its assignment.
Diffstat (limited to 'blacklst.c')
-rw-r--r-- | blacklst.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -109,6 +109,7 @@ GC_INNER void GC_bl_init(void) if (!GC_all_interior_pointers) { GC_bl_init_no_interiors(); } + GC_ASSERT(NULL == GC_old_stack_bl && NULL == GC_incomplete_stack_bl); GC_old_stack_bl = (word *)GC_scratch_alloc(sizeof(page_hash_table)); GC_incomplete_stack_bl = (word *)GC_scratch_alloc(sizeof(page_hash_table)); if (GC_old_stack_bl == 0 || GC_incomplete_stack_bl == 0) { |