eventq: Don't use inline friend function when a static function will do.
authorNathan Binkert <nate@binkert.org>
Thu, 9 Oct 2008 11:58:23 +0000 (04:58 -0700)
committerNathan Binkert <nate@binkert.org>
Thu, 9 Oct 2008 11:58:23 +0000 (04:58 -0700)
Another good reason to avoid this is that swig will try to wrap the friend,
but it won't try to wrap a private static function.

src/sim/eventq.cc
src/sim/eventq.hh

index 4f0b51e08739f86431ca65a372355d934d6d3ec4..78d6a458f22a9d0c7ffcc0ae72564eb384b93228 100644 (file)
@@ -57,8 +57,8 @@ EventQueue mainEventQueue("MainEventQueue");
 Counter Event::instanceCounter = 0;
 #endif
 
-inline Event *
-insertBefore(Event *event, Event *curr)
+Event *
+Event::insertBefore(Event *event, Event *curr)
 {
     // Either way, event will be the top element in the 'in bin' list
     // which is the pointer we need in order to look into the list, so
@@ -83,7 +83,7 @@ EventQueue::insert(Event *event)
 {
     // Deal with the head case
     if (!head || *event <= *head) {
-        head = insertBefore(event, head);
+        head = Event::insertBefore(event, head);
         return;
     }
 
@@ -98,11 +98,11 @@ EventQueue::insert(Event *event)
 
     // Note: this operation may render all nextBin pointers on the
     // prev 'in bin' list stale (except for the top one)
-    prev->nextBin = insertBefore(event, curr);
+    prev->nextBin = Event::insertBefore(event, curr);
 }
 
-inline Event *
-removeItem(Event *event, Event *top)
+Event *
+Event::removeItem(Event *event, Event *top)
 {
     Event *curr = top;
     Event *next = top->nextInBin;
@@ -141,7 +141,7 @@ EventQueue::remove(Event *event)
     // deal with an event on the head's 'in bin' list (event has the same
     // time as the head)
     if (*head == *event) {
-        head = removeItem(event, head);
+        head = Event::removeItem(event, head);
         return;
     }
 
@@ -159,7 +159,7 @@ EventQueue::remove(Event *event)
     // curr points to the top item of the the correct 'in bin' list, when
     // we remove an item, it returns the new top item (which may be
     // unchanged)
-    prev->nextBin = removeItem(event, curr);
+    prev->nextBin = Event::removeItem(event, curr);
 }
 
 Event *
index 967e558db930702004e47ea76fce42a8ff3b4ac4..e0194a742e6f2b1b6b428ff9e3f7dfdbfec03034 100644 (file)
@@ -87,8 +87,8 @@ class Event : public Serializable, public FastAlloc
     Event *nextBin;
     Event *nextInBin;
 
-    friend Event *insertBefore(Event *event, Event *curr);
-    friend Event *removeItem(Event *event, Event *last);
+    static Event *insertBefore(Event *event, Event *curr);
+    static Event *removeItem(Event *event, Event *last);
 
     /// queue to which this event belongs (though it may or may not be
     /// scheduled on this queue yet)