Ignore:
Timestamp:
Jan 17, 2006, 9:28:35 AM (19 years ago)
Author:
darin
Message:

Reviewed by Anders.

  • kxmlcore/PassRefPtr.h: Always set m_ptr before calling deref.
  • kxmlcore/RefPtr.h: Ditto.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kxmlcore/RefPtr.h

    r11962 r12149  
    7575    template <typename T> RefPtr<T>& RefPtr<T>::operator=(const RefPtr<T>& o)
    7676    {
    77         T *optr = o.m_ptr;
     77        T* optr = o.m_ptr;
    7878        if (optr)
    7979            optr->ref();
    80         if (m_ptr)
    81             m_ptr->deref();
     80        T* ptr = m_ptr;
    8281        m_ptr = optr;
     82        if (ptr)
     83            ptr->deref();
    8384        return *this;
    8485    }
     
    8990        if (optr)
    9091            optr->ref();
    91         if (m_ptr)
    92             m_ptr->deref();
     92        T* ptr = m_ptr;
    9393        m_ptr = optr;
     94        if (ptr)
     95            ptr->deref();
    9496        return *this;
    9597    }
     
    99101        if (optr)
    100102            optr->ref();
    101         if (m_ptr)
    102             m_ptr->deref();
     103        T* ptr = m_ptr;
    103104        m_ptr = optr;
     105        if (ptr)
     106            ptr->deref();
    104107        return *this;
    105108    }
     
    107110    template <typename T> inline RefPtr<T>& RefPtr<T>::operator=(const PassRefPtr<T>& o)
    108111    {
    109         if (m_ptr)
    110             m_ptr->deref();
     112        T* ptr = m_ptr;
    111113        m_ptr = o.release();
     114        if (ptr)
     115            ptr->deref();
    112116        return *this;
    113117    }
     
    115119    template <typename T> template <typename U> inline RefPtr<T>& RefPtr<T>::operator=(const PassRefPtr<U>& o)
    116120    {
    117         if (m_ptr)
    118             m_ptr->deref();
     121        T* ptr = m_ptr;
    119122        m_ptr = o.release();
     123        if (ptr)
     124            ptr->deref();
    120125        return *this;
    121126    }
Note: See TracChangeset for help on using the changeset viewer.