Drop at-exit memory leak assertion and note accuracy requirements
authorMatt Corallo <git@bluematt.me>
Fri, 12 Mar 2021 16:44:31 +0000 (11:44 -0500)
committerMatt Corallo <git@bluematt.me>
Fri, 12 Mar 2021 16:44:31 +0000 (11:44 -0500)
java_strings.py

index d827da9e05f62d586e0605568cdb8c579b2ab64f..3f9ecc56f70efae855eb81d170d53f808643af74 100644 (file)
@@ -197,6 +197,9 @@ void __wrap_reallocarray(void* ptr, size_t new_sz) {
 void __attribute__((destructor)) check_leaks() {
        size_t alloc_count = 0;
        size_t alloc_size = 0;
+       fprintf(stderr, "The following LDK-allocated blocks still remain.\\n");
+       fprintf(stderr, "Note that this is only accurate if System.gc(); System.runFinalization()\\n");
+       fprintf(stderr, "was called prior to exit after all LDK objects were out of scope.\\n");
        for (allocation* a = allocation_ll; a != NULL; a = a->next) {
                fprintf(stderr, "%s %p (%lu bytes) remains:\\n", a->struct_name, a->ptr, a->alloc_len);
                backtrace_symbols_fd(a->bt, a->bt_len, STDERR_FILENO);
@@ -205,7 +208,8 @@ void __attribute__((destructor)) check_leaks() {
                alloc_size += a->alloc_len;
        }
        fprintf(stderr, "%lu allocations remained for %lu bytes.\\n", alloc_count, alloc_size);
-       DO_ASSERT(allocation_ll == NULL);
+       fprintf(stderr, "Note that this is only accurate if System.gc(); System.runFinalization()\\n");
+       fprintf(stderr, "was called prior to exit after all LDK objects were out of scope.\\n");
 }
 """
         self.c_file_pfx = self.c_file_pfx + """