COIN-OR::LEMON - Graph Library

Changeset 2151:38ec4a930c05 in lemon-0.x for lemon/refptr.h


Ignore:
Timestamp:
07/18/06 15:29:59 (18 years ago)
Author:
Alpar Juttner
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2865
Message:

exceptionName() has been thrown away

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lemon/refptr.h

    r1977 r2151  
    4646    void attach(RefPtr &r)
    4747    {
    48       prev=&r; next=r.next; ref=r.ref;
    49       r.next=this;
     48      if(r.ref) {
     49        prev=&r; next=r.next; ref=r.ref;
     50        r.next=this;
     51      }
    5052    }
    5153    void attach(const T *p)
     
    140142    operator bool() const { return ref; }
    141143
     144    ///\e
     145    const RefPtr &borrow(const T* &p) {
     146      lock();
     147      if(ref==p) {
     148        if(prev) prev->next=next;
     149        if(next) next->prev=prev;
     150      }
     151      else release();
     152      ref=p;
     153      next=prev=this;
     154      unlock();
     155      return *this;
     156    }
     157   
     158    ///\e
     159    const RefPtr &borrow() {
     160      lock();
     161      if(prev) prev->next=next;
     162      if(next) next->prev=prev;
     163      next=prev=this;
     164      unlock();
     165      return *this;
     166    }
     167   
    142168  };  //END OF CLASS REFPTR
    143169 
Note: See TracChangeset for help on using the changeset viewer.