From e61347f060f74e73ee6268304621b605939f8311 Mon Sep 17 00:00:00 2001 From: Georg Hopp Date: Tue, 20 Oct 2015 20:22:26 +0200 Subject: [PATCH] Change SWAP to something worging --- src/heap/get.c | 15 ++++++++------- src/heap/put.c | 12 +++++++----- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/heap/get.c b/src/heap/get.c index 65c5b7a..d8cb3ed 100644 --- a/src/heap/get.c +++ b/src/heap/get.c @@ -46,10 +46,9 @@ TR_heapGet(TR_Heap this) return value; } - SWAP( - void *, - TR_darrGet((TR_Dynarray)this, 0), - TR_darrGet((TR_Dynarray)this, idx)); + const void * tmp = TR_darrGet((TR_Dynarray)this, 0); + TR_darrPutAt((TR_Dynarray)this, TR_darrGet((TR_Dynarray)this, idx), 0); + TR_darrPutAt((TR_Dynarray)this, tmp, idx); idx = 0; while (left < ((TR_Dynarray)this)->size && @@ -67,10 +66,12 @@ TR_heapGet(TR_Heap this) if (0 > this->comp( TR_darrGet((TR_Dynarray)this, idx), TR_darrGet((TR_Dynarray)this, change))) { - SWAP( - void *, + tmp = TR_darrGet((TR_Dynarray)this, change); + TR_darrPutAt( + (TR_Dynarray)this, TR_darrGet((TR_Dynarray)this, idx), - TR_darrGet((TR_Dynarray)this, change)); + change); + TR_darrPutAt((TR_Dynarray)this, tmp, idx); idx = change; left = (idx << 1) + 1; right = left + 1; diff --git a/src/heap/put.c b/src/heap/put.c index 3555cfd..379afb6 100644 --- a/src/heap/put.c +++ b/src/heap/put.c @@ -36,12 +36,14 @@ TR_heapPut(TR_Heap this, const void * data) size_t parent = (idx - 1) >> 1; if (0 > this->comp( - TR_darrGet((TR_Dynarray)this, parent), + TR_darrGet((TR_Dynarray)this, parent), TR_darrGet((TR_Dynarray)this, idx))) { - SWAP( - void *, - TR_darrGet((TR_Dynarray)this, parent), - TR_darrGet((TR_Dynarray)this, idx)); + const void * tmp = TR_darrGet((TR_Dynarray)this, parent); + TR_darrPutAt( + (TR_Dynarray)this, + TR_darrGet((TR_Dynarray)this, idx), + parent); + TR_darrPutAt((TR_Dynarray)this, tmp, idx); idx = parent; } else { break;