From c065a08969bf32195de28d3a32cf0b9c2d8fbbe2 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 7 Apr 2020 15:35:37 -0700 Subject: [PATCH] bug fixes --- actionlist.cc | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/actionlist.cc b/actionlist.cc index 9f335e90..e39fb3cf 100644 --- a/actionlist.cc +++ b/actionlist.cc @@ -104,19 +104,16 @@ void actionlist::addAction(ModelAction * act) { sllnode * llnode = new sllnode(); llnode->val = act; if (tmp == NULL) { - ptr->children[index] = reinterpret_cast(((uintptr_t) llnode) | ISACT); sllnode * llnodeprev = ptr->findPrev(clock); if (llnodeprev != NULL) { - llnode->next = llnodeprev->next; llnode->prev = llnodeprev; //see if we are the new tail - if (llnodeprev->next == NULL) - tail = llnode; + if (llnode->next != NULL) + llnode->next->prev = llnode; else - llnode->next->prev = llnode; - + tail = llnode; llnodeprev->next = llnode; } else { //We are the begining @@ -131,16 +128,20 @@ void actionlist::addAction(ModelAction * act) { head = llnode; } + ptr->children[index] = reinterpret_cast(((uintptr_t) llnode) | ISACT); + //need to find next link ptr->count++; } else { //handle case where something else is here - sllnode * llnodeprev = reinterpret_cast*>(((uintptr_t) llnode) & ACTMASK); + sllnode * llnodeprev = reinterpret_cast*>(((uintptr_t) tmp) & ACTMASK); llnode->next = llnodeprev->next; llnode->prev = llnodeprev; if (llnode->next != NULL) llnode->next->prev = llnode; + else + tail = llnode; llnodeprev->next = llnode; ptr->children[index] = reinterpret_cast(((uintptr_t) llnode) | ISACT); } -- 2.34.1