[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

eric at webkit.org eric at webkit.org
Thu Oct 29 20:35:11 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit f1a58635b8110240553c9fbf5e6e1e7559be60fd
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Sep 28 20:09:40 2009 +0000

    2009-09-28  Yongjun Zhang  <yongjun.zhang at nokia.com>
    
            Reviewed by Eric Seidel.
    
            https://bugs.webkit.org/show_bug.cgi?id=28054
    
            Use derefInNotNull() to work around winscw compiler forward declaration bug
            regarding templated classes.
    
            The compiler bug is reported at
            https://xdabug001.ext.nokia.com/bugzilla/show_bug.cgi?id=9812.
    
            The change should be reverted when the above bug is fixed in winscw compiler.
    
            Add parenthesis around (RefPtr::*UnspecifiedBoolType) to make winscw compiler
            work with the default UnSpecifiedBoolType() operator, which removes the winscw hack.
    
            * wtf/RefPtr.h:
            (WTF::RefPtr::~RefPtr):
            (WTF::RefPtr::clear):
            (WTF::RefPtr::operator UnspecifiedBoolType):
    2009-09-28  Yongjun Zhang  <yongjun.zhang at nokia.com>
    
            Reviewed by Eric Seidel.
    
            Make JObjectWrapper::ref() and deref() public accessible to derefIfNull().
    
            Will be reverted when the following winscw compiler bug is fixed.
            https://xdabug001.ext.nokia.com/bugzilla/show_bug.cgi?id=9812
    
            * bridge/jni/jni_instance.h:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48825 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index a567508..0286acd 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,25 @@
+2009-09-28  Yongjun Zhang  <yongjun.zhang at nokia.com>
+
+        Reviewed by Eric Seidel.
+
+        https://bugs.webkit.org/show_bug.cgi?id=28054
+       
+        Use derefInNotNull() to work around winscw compiler forward declaration bug
+        regarding templated classes. 
+
+        The compiler bug is reported at 
+        https://xdabug001.ext.nokia.com/bugzilla/show_bug.cgi?id=9812.
+        
+        The change should be reverted when the above bug is fixed in winscw compiler. 
+
+        Add parenthesis around (RefPtr::*UnspecifiedBoolType) to make winscw compiler
+        work with the default UnSpecifiedBoolType() operator, which removes the winscw hack.
+
+        * wtf/RefPtr.h:
+        (WTF::RefPtr::~RefPtr):
+        (WTF::RefPtr::clear):
+        (WTF::RefPtr::operator UnspecifiedBoolType):
+
 2009-09-28  Gabor Loki  <loki at inf.u-szeged.hu>
 
         Reviewed by Simon Hausmann.
diff --git a/JavaScriptCore/wtf/RefPtr.h b/JavaScriptCore/wtf/RefPtr.h
index 74cd0ea..e389007 100644
--- a/JavaScriptCore/wtf/RefPtr.h
+++ b/JavaScriptCore/wtf/RefPtr.h
@@ -48,13 +48,13 @@ namespace WTF {
         RefPtr(HashTableDeletedValueType) : m_ptr(hashTableDeletedValue()) { }
         bool isHashTableDeletedValue() const { return m_ptr == hashTableDeletedValue(); }
 
-        ~RefPtr() { if (T* ptr = m_ptr) ptr->deref(); }
+        ~RefPtr() { derefIfNotNull(m_ptr); }
         
         template <typename U> RefPtr(const RefPtr<U>& o) : m_ptr(o.get()) { if (T* ptr = m_ptr) ptr->ref(); }
         
         T* get() const { return m_ptr; }
         
-        void clear() { if (T* ptr = m_ptr) ptr->deref(); m_ptr = 0; }
+        void clear() { derefIfNotNull(m_ptr); m_ptr = 0; }
         PassRefPtr<T> release() { PassRefPtr<T> tmp = adoptRef(m_ptr); m_ptr = 0; return tmp; }
 
         T& operator*() const { return *m_ptr; }
@@ -63,12 +63,8 @@ namespace WTF {
         bool operator!() const { return !m_ptr; }
     
         // This conversion operator allows implicit conversion to bool but not to other integer types.
-#if COMPILER(WINSCW)
-        operator bool() const { return m_ptr; }
-#else
-        typedef T* RefPtr::*UnspecifiedBoolType;
+        typedef T* (RefPtr::*UnspecifiedBoolType);
         operator UnspecifiedBoolType() const { return m_ptr ? &RefPtr::m_ptr : 0; }
-#endif
         
         RefPtr& operator=(const RefPtr&);
         RefPtr& operator=(T*);
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 5dd977c..8623793 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,14 @@
+2009-09-28  Yongjun Zhang  <yongjun.zhang at nokia.com>
+
+        Reviewed by Eric Seidel.
+
+        Make JObjectWrapper::ref() and deref() public accessible to derefIfNull().
+        
+        Will be reverted when the following winscw compiler bug is fixed.
+        https://xdabug001.ext.nokia.com/bugzilla/show_bug.cgi?id=9812
+
+        * bridge/jni/jni_instance.h:
+
 2009-09-28  Andrew Scherkus  <scherkus at chromium.org>
 
         Reviewed by Eric Carlson.
diff --git a/WebCore/bridge/jni/jni_instance.h b/WebCore/bridge/jni/jni_instance.h
index 0dcab3e..e227248 100644
--- a/WebCore/bridge/jni/jni_instance.h
+++ b/WebCore/bridge/jni/jni_instance.h
@@ -47,10 +47,7 @@ friend class JavaField;
 friend class JavaInstance;
 friend class JavaMethod;
 
-protected:
-    JObjectWrapper(jobject instance);    
-    ~JObjectWrapper();
-    
+public:
     void ref() { _refCount++; }
     void deref() 
     { 
@@ -58,6 +55,10 @@ protected:
             delete this; 
     }
 
+protected:
+    JObjectWrapper(jobject instance);    
+    ~JObjectWrapper();
+    
     jobject _instance;
 
 private:

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list