]> granicus.if.org Git - gc/commitdiff
Eliminate 'memory leak' code defect in remove_specific
authorIvan Maidanski <ivmai@mail.ru>
Fri, 25 Aug 2017 14:59:05 +0000 (17:59 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Thu, 28 Sep 2017 21:56:51 +0000 (00:56 +0300)
* specific.c [LINT2] (GC_remove_specific): Call GC_noop1(entry) to
indicate that entry is lost (the memory will be collected during GC).

specific.c

index 81174d0b708b70e14436742ffa1a797af53f09dd..eca2d9370517522e3a8fb1b1dc17d680b1e5fea3 100644 (file)
@@ -111,6 +111,9 @@ GC_INNER void GC_remove_specific_after_fork(tsd * key, pthread_t t)
     /* cache lookup, which should still be examining deallocated memory.*/
     /* This can only happen if the concurrent access is from another    */
     /* thread, and hence has missed the cache, but still...             */
+#   ifdef LINT2
+      GC_noop1((word)entry);
+#   endif
 
     /* With GC, we're done, since the pointers from the cache will      */
     /* be overwritten, all local pointers to the entries will be        */