Changeset: b030a5629d9a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b030a5629d9a
Modified Files:
        gdk/gdk_system.c
        gdk/gdk_utils.c
Branch: resource_management
Log Message:

Some small fixes.


diffs (51 lines):

diff --git a/gdk/gdk_system.c b/gdk/gdk_system.c
--- a/gdk/gdk_system.c
+++ b/gdk/gdk_system.c
@@ -366,10 +366,10 @@ static void
 rm_mtthread(struct mtthread *t)
 {
        struct mtthread **pt;
-       allocator *ta = t->ma;
 
        assert(t != &mainthread);
        thread_lock();
+       allocator *ta = t->ma;
        t->ma = NULL;
        for (pt = &mtthreads; *pt && *pt != t; pt = &(*pt)->next)
                ;
@@ -454,7 +454,11 @@ MT_thread_register(void)
                .semawait = ATOMIC_PTR_VAR_INIT(NULL),
        };
        snprintf(self->threadname, sizeof(self->threadname), "foreign %zu", 
self->tid);
-       self->ma = create_allocator(NULL, self->threadname, false),
+       self->ma = create_allocator(NULL, self->threadname, false);
+       if (self->ma == NULL) {
+               free(self);
+               return false;
+       }
        thread_setself(self);
        thread_lock();
        self->next = mtthreads;
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -2803,12 +2803,13 @@ sa_close_to(allocator *sa, allocator_sta
                        assert((state->nr > 0) && (state->nr <= sa->nr));
                        assert(state->used <= SA_BLOCK_SIZE);
                        if (state->nr != sa->nr || state->used != sa->used) {
-                               _sa_free_blks(sa, state->nr);
-                               sa->nr = state->nr;
-                               sa->used = state->used;
-                               sa->usedmem = state->usedmem;
-                               sa->objects = state->objects;
-                               sa->inuse = state->inuse;
+                               allocator_state state_save = *state;
+                               _sa_free_blks(sa, state_save.nr);
+                               sa->nr = state_save.nr;
+                               sa->used = state_save.used;
+                               sa->usedmem = state_save.usedmem;
+                               sa->objects = state_save.objects;
+                               sa->inuse = state_save.inuse;
                        }
                }
                if (sa->tmp_used > 0) {
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to