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/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    }
Note: See TracChangeset for help on using the changeset viewer.