From fd4ff9ddd040901f006a84d7f1797bdb2f1b4912 Mon Sep 17 00:00:00 2001
From: Kostyantyn Vorobyov <k.a.vorobyov@gmail.com>
Date: Tue, 29 Mar 2016 18:03:48 +0200
Subject: [PATCH] Rebase

---
 .../e-acsl/bittree_model/e_acsl_bittree.h     | 30 +++++--------------
 1 file changed, 7 insertions(+), 23 deletions(-)

diff --git a/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree.h b/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree.h
index 989a640c1e9..b580762fd5b 100644
--- a/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree.h
+++ b/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree.h
@@ -355,34 +355,19 @@ static struct _block * get_cont (void * ptr) {
   struct bittree * tmp = __root;
   if(__root == NULL || ptr == NULL) return NULL;
 
-  struct bittree * t [WORDBITS];
-  short ind = -1;
+  struct bittree * other_choice = NULL;
 
   while(1) {
     if(tmp->is_leaf) {
       /* tmp cannot contain ptr because its begin addr is higher */
-      if(tmp->addr > (size_t)ptr) {
-	if(ind == -1)
-	  return NULL;
-	else {
-	  tmp = t[ind];
-	  ind--;
-	  continue;
-	}
-      }
+      if(tmp->addr > (size_t)ptr) return NULL;
       /* tmp->addr <= ptr, tmp may contain ptr
 	 ptr is contained if tmp is large enough (begin addr + size) */
       else if((size_t)ptr < tmp->leaf->size + tmp->addr
               || (tmp->leaf->size == 0 && (size_t)ptr == tmp->leaf->ptr))
 	return tmp->leaf;
       /* tmp->addr <= ptr, but tmp->addr is not large enough */
-      else if (ind == -1)
-	return NULL;
-      else {
-	tmp = t[ind];
-	ind--;
-	continue;
-      }
+      else return NULL;
     }
 
     assert(tmp->left != NULL && tmp->right != NULL);
@@ -390,19 +375,18 @@ static struct _block * get_cont (void * ptr) {
     /* the right child has the highest address, so we test it first */
     if(((size_t)tmp->right->addr & tmp->right->mask)
        <= ((size_t)ptr & tmp->right->mask)) {
-      ind++;
-      t[ind] = tmp->left;
+      other_choice = tmp->left;
       tmp = tmp->right;
     }
     else if(((size_t)tmp->left->addr & tmp->left->mask)
 	    <= ((size_t)ptr & tmp->left->mask))
       tmp = tmp->left;
     else {
-      if(ind == -1)
+      if(other_choice == NULL)
 	return NULL;
       else {
-	tmp = t[ind];
-	ind--;
+	tmp = other_choice;
+	other_choice = NULL;
       }
     }
   }
-- 
GitLab