Commit 118f8b2e authored by unknown's avatar unknown
Browse files

ndb - bug#18295

  rewrite/clean up code a bit to avoid a gcc4 compiler bug


storage/ndb/src/kernel/vm/DLFifoList.hpp:
  Fix compiler bug
storage/ndb/src/kernel/vm/DLList.hpp:
  Fix compiler bug
storage/ndb/src/kernel/vm/SLList.hpp:
  Fix compiler bug
parent 61e3fea2
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -312,15 +312,16 @@ inline
void 
DLFifoListImpl<P,T,U>::release()
{
  Ptr<T> p;
  while(head.firstItem != RNIL)
  Ptr<T> ptr;
  Uint32 curr = head.firstItem;
  while(curr != RNIL)
  {
    p.i = head.firstItem;  
    p.p = thePool.getPtr(head.firstItem);    
    T * t = p.p;
    head.firstItem = t->U::nextList;
    release(p);
    thePool.getPtr(ptr, curr);
    curr = ptr.p->U::nextList;
    thePool.release(ptr);
  }
  head.firstItem = RNIL;
  head.lastItem = RNIL;
}

template <typename P, typename T, typename U>
+6 −4
Original line number Diff line number Diff line
@@ -332,12 +332,14 @@ void
DLListImpl<P,T,U>::release()
{
  Ptr<T> ptr;
  while((ptr.i = head.firstItem) != RNIL)
  Uint32 curr = head.firstItem;
  while(curr != RNIL)
  {
    thePool.getPtr(ptr);
    head.firstItem = ptr.p->U::nextList;
    thePool.getPtr(ptr, curr);
    curr = ptr.p->U::nextList;
    thePool.release(ptr);
  }
  head.firstItem = RNIL;
}

template <typename P, typename T, typename U>
+6 −4
Original line number Diff line number Diff line
@@ -302,12 +302,14 @@ void
SLListImpl<P, T, U>::release()
{
  Ptr<T> ptr;
  while((ptr.i = head.firstItem) != RNIL)
  Uint32 curr = head.firstItem;
  while(curr != RNIL)
  {
    thePool.getPtr(ptr);
    head.firstItem = ptr.p->U::nextList;
    thePool.getPtr(ptr, curr);
    curr = ptr.p->U::nextList;
    thePool.release(ptr);
  }
  head.firstItem = RNIL;
}

template <typename P, typename T, typename U>