Changeset 12149 in webkit for trunk/JavaScriptCore/kxmlcore


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.
Location:
trunk/JavaScriptCore/kxmlcore
Files:
2 edited

Legend:

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

    r11962 r12149  
    7575    template <typename T> template <typename U> inline PassRefPtr<T>& PassRefPtr<T>::operator=(const RefPtr<U>& o)
    7676    {
    77         T *optr = o.m_ptr;
     77        T* optr = o.m_ptr;
    7878        if (optr)
    7979            optr->ref();
    80         if (T *ptr = m_ptr)
     80        T* ptr = m_ptr;
     81        m_ptr = optr;
     82        if (ptr)
    8183            ptr->deref();
    82         m_ptr = optr;
    8384        return *this;
    8485    }
     
    8889        if (optr)
    8990            optr->ref();
    90         if (T *ptr = m_ptr)
     91        T* ptr = m_ptr;
     92        m_ptr = optr;
     93        if (ptr)
    9194            ptr->deref();
    92         m_ptr = optr;
    9395        return *this;
    9496    }
     
    9698    template <typename T> inline PassRefPtr<T>& PassRefPtr<T>::operator=(const PassRefPtr<T>& ref)
    9799    {
    98         T *optr = ref.release();
    99         if (T *ptr = m_ptr)
     100        T* ptr = m_ptr;
     101        m_ptr = ref.release();
     102        if (ptr)
    100103            ptr->deref();
    101         m_ptr = optr;
    102104        return *this;
    103105    }
     
    105107    template <typename T> template <typename U> inline PassRefPtr<T>& PassRefPtr<T>::operator=(const PassRefPtr<U>& ref)
    106108    {
    107         T *optr = ref.release();
    108         if (T *ptr = m_ptr)
     109        T* ptr = m_ptr;
     110        m_ptr = ref.release();
     111        if (ptr)
    109112            ptr->deref();
    110         m_ptr = optr;
    111113        return *this;
    112114    }
  • 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.