changes to intruder
[IRC.git] / Robust / src / Benchmarks / SingleTM / Intruder / Queue_t.java
index b692dc56d543d9b3de52470c3ea9acbcaceb7667..fbf9d5da41eed3f5ec21194e3fd41a2e26b03749 100644 (file)
@@ -57,53 +57,18 @@ public class Queue_t {
   int capacity;
   Object[] elements;
 
-  public Queue_t() {
-  }
-
   /* =============================================================================
    * queue_alloc
    * =============================================================================
    */
-  public static Queue_t queue_alloc (int initCapacity)
-  {
-    Queue_t queuePtr = new Queue_t();
-
+  public Queue_t(int initCapacity) {
     int capacity = ((initCapacity < 2) ? 2 : initCapacity);
-    queuePtr.elements = new Object[capacity];
-    if (queuePtr.elements == null) {
-      queuePtr = null;
-      return null;
-    }
-    queuePtr.pop      = capacity - 1;
-    queuePtr.push     = 0;
-    queuePtr.capacity = capacity;
-
-    return queuePtr;
+    elements = new Object[capacity];
+    pop      = capacity - 1;
+    push     = 0;
+    this.capacity = capacity;
   }
 
-
-  /* =============================================================================
-   * Pqueue_alloc
-   * =============================================================================
-   */
-  public Queue_t
-    Pqueue_alloc (int initCapacity)
-    {
-      Queue_t queuePtr = new Queue_t();
-
-      int capacity = ((initCapacity < 2) ? 2 : initCapacity);
-      queuePtr.elements = new Object[capacity];
-      if (queuePtr.elements == null) {
-        queuePtr = null;
-        return null;
-      }
-      queuePtr.pop      = capacity - 1;
-      queuePtr.push     = 0;
-      queuePtr.capacity = capacity;
-
-      return queuePtr;
-    }
-
   /* =============================================================================
    * queue_free
    * =============================================================================
@@ -112,21 +77,9 @@ public class Queue_t {
     queue_free (Queue_t queuePtr)
     {
       queuePtr.elements = null;
-      queuePtr = null;
     }
 
 
-  /* =============================================================================
-   * Pqueue_free
-   * =============================================================================
-   */
-  public void
-    Pqueue_free (Queue_t queuePtr)
-    {
-      queuePtr.elements = null;
-      queuePtr = null;
-    }
-
 
   /* =============================================================================
    * TMqueue_free
@@ -178,57 +131,51 @@ public class Queue_t {
    * queue_push
    * =============================================================================
    */
-  public boolean
-    queue_push (Object dataPtr)
-    {
-    
-      if(pop == push) {
+  public boolean queue_push (Object dataPtr) {
+    if(pop == push) {
+      System.out.println("push == pop in Queue.java");
+      return false;
+    }
 
-        System.out.println("push == pop in Queue.java");
-        return false;
+    /* Need to resize */
+    int newPush = (push + 1) % capacity;
+    if (newPush == pop) {
+      int newCapacity = capacity * QUEUE_GROWTH_FACTOR;
+      Object[] newElements = new Object[newCapacity];
+      if (newElements == null) {
+       return false;
       }
-
-
-      /* Need to resize */
-      int newPush = (push + 1) % capacity;
-      if (newPush == pop) {
-
-        int newCapacity = capacity * QUEUE_GROWTH_FACTOR;
-        Object[] newElements = new Object[newCapacity];
-        if (newElements == null) {
-          return false;
-        }
-
-        int dst = 0;
-        Object[] tmpelements = elements;
-        if (pop < push) {
-          int src;
-          for (src = (pop + 1); src < push; src++, dst++) {
-            newElements[dst] = elements[src];
-          }
-        } else {
-          int src;
-          for (src = (pop + 1); src < capacity; src++, dst++) {
-            newElements[dst] = elements[src];
-          }
-          for (src = 0; src < push; src++, dst++) {
-            newElements[dst] = elements[src];
-          }
-        }
-
-        //elements = null;
-        elements = newElements;
-        pop      = newCapacity - 1;
-        capacity = newCapacity;
-        push = dst;
-        newPush = push + 1; /* no need modulo */
+      
+      int dst = 0;
+      Object[] tmpelements = elements;
+      if (pop < push) {
+       int src;
+       for (src = (pop + 1); src < push; src++, dst++) {
+         newElements[dst] = elements[src];
+       }
+      } else {
+       int src;
+       for (src = (pop + 1); src < capacity; src++, dst++) {
+         newElements[dst] = elements[src];
+       }
+       for (src = 0; src < push; src++, dst++) {
+         newElements[dst] = elements[src];
+       }
       }
-
-      elements[push] = dataPtr;
-      push = newPush;
-
-      return true;
+      
+      //elements = null;
+      elements = newElements;
+      pop      = newCapacity - 1;
+      capacity = newCapacity;
+      push = dst;
+      newPush = push + 1; /* no need modulo */
     }
+    
+    elements[push] = dataPtr;
+    push = newPush;
+    
+    return true;
+  }
 
 
   /* =============================================================================
@@ -293,26 +240,17 @@ public class Queue_t {
    * queue_pop
    * =============================================================================
    */
-  public Object
-    //queue_pop (Queue queuePtr)
-    queue_pop ()
-    {
-      //int pop      = queuePtr.pop;
-      //int push     = queuePtr.push;
-      //int capacity = queuePtr.capacity;
-
-      int newPop = (pop + 1) % capacity;
-      if (newPop == push) {
-        return null;
-      }
-
-      //Object dataPtr = queuePtr.elements[newPop];
-      //queuePtr.pop = newPop;
-      Object dataPtr = elements[newPop];
-      pop = newPop;
-
-      return dataPtr;
+  public Object queue_pop () {
+    int newPop = (pop + 1) % capacity;
+    if (newPop == push) {
+      return null;
     }
+    
+    Object dataPtr = elements[newPop];
+    pop = newPop;
+    
+    return dataPtr;
+  }
 
   public void queue_shuffle (Random randomPtr)
     {