[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
mjs
mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:15:06 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 503dd63d5b490a1220d97828007be1172b23892e
Author: mjs <mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon May 27 08:58:31 2002 +0000
Fixed the vexing and long-standing:
Radar 2894699 - Crash at: http://cb.apple.com/jsplugins.html
* khtml/ecma/kjs_navigator.cpp: This crash was caused by Plugin
and MimeType objects referring to data that was held and
refcounted by PluginBase, without holding a ref. I fixed it by
making these individual items participate in the refcounting as
well.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1220 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index 4a3ee6c..34e9c5c 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,3 +1,15 @@
+2002-05-27 Maciej Stachowiak <mjs at apple.com>
+
+ Fixed the vexing and long-standing:
+
+ Radar 2894699 - Crash at: http://cb.apple.com/jsplugins.html
+
+ * khtml/ecma/kjs_navigator.cpp: This crash was caused by Plugin
+ and MimeType objects referring to data that was held and
+ refcounted by PluginBase, without holding a ref. I fixed it by
+ making these individual items participate in the refcounting as
+ well.
+
2002-05-26 Maciej Stachowiak <mjs at apple.com>
Webcore part of fix for:
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 4a3ee6c..34e9c5c 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,15 @@
+2002-05-27 Maciej Stachowiak <mjs at apple.com>
+
+ Fixed the vexing and long-standing:
+
+ Radar 2894699 - Crash at: http://cb.apple.com/jsplugins.html
+
+ * khtml/ecma/kjs_navigator.cpp: This crash was caused by Plugin
+ and MimeType objects referring to data that was held and
+ refcounted by PluginBase, without holding a ref. I fixed it by
+ making these individual items participate in the refcounting as
+ well.
+
2002-05-26 Maciej Stachowiak <mjs at apple.com>
Webcore part of fix for:
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 4a3ee6c..34e9c5c 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,15 @@
+2002-05-27 Maciej Stachowiak <mjs at apple.com>
+
+ Fixed the vexing and long-standing:
+
+ Radar 2894699 - Crash at: http://cb.apple.com/jsplugins.html
+
+ * khtml/ecma/kjs_navigator.cpp: This crash was caused by Plugin
+ and MimeType objects referring to data that was held and
+ refcounted by PluginBase, without holding a ref. I fixed it by
+ making these individual items participate in the refcounting as
+ well.
+
2002-05-26 Maciej Stachowiak <mjs at apple.com>
Webcore part of fix for:
diff --git a/WebCore/khtml/ecma/kjs_navigator.cpp b/WebCore/khtml/ecma/kjs_navigator.cpp
index b874a8f..63a5d71 100644
--- a/WebCore/khtml/ecma/kjs_navigator.cpp
+++ b/WebCore/khtml/ecma/kjs_navigator.cpp
@@ -61,6 +61,10 @@ namespace KJS {
static QPtrList<PluginInfo> *plugins;
static QPtrList<MimeClassInfo> *mimes;
+#ifdef APPLE_CHANGES
+ static void ref();
+ static void unref();
+#endif
private:
static int m_refCount;
@@ -91,9 +95,17 @@ namespace KJS {
class Plugin : public ObjectImp {
public:
+#ifdef APPLE_CHANGES
+ Plugin( ExecState *exec, PluginBase::PluginInfo *info )
+ : ObjectImp(exec->interpreter()->builtinObjectPrototype() )
+ { m_info = info; PluginBase::ref(); };
+ virtual ~Plugin()
+ { PluginBase::unref(); }
+#else
Plugin( ExecState *exec, PluginBase::PluginInfo *info )
: ObjectImp(exec->interpreter()->builtinObjectPrototype() )
{ m_info = info; };
+#endif
virtual Value get(ExecState *exec, const UString &propertyName) const;
virtual const ClassInfo* classInfo() const { return &info; }
static const ClassInfo info;
@@ -105,9 +117,17 @@ namespace KJS {
class MimeType : public ObjectImp {
public:
+#ifdef APPLE_CHANGES
+ MimeType( ExecState *exec, PluginBase::MimeClassInfo *info )
+ : ObjectImp(exec->interpreter()->builtinObjectPrototype() )
+ { m_info = info; PluginBase::ref(); };
+ virtual ~MimeType()
+ { PluginBase::unref(); }
+#else
MimeType( ExecState *exec, PluginBase::MimeClassInfo *info )
: ObjectImp(exec->interpreter()->builtinObjectPrototype() )
{ m_info = info; };
+#endif
virtual Value get(ExecState *exec, const UString &propertyName) const;
virtual const ClassInfo* classInfo() const { return &info; }
static const ClassInfo info;
@@ -279,6 +299,25 @@ PluginBase::~PluginBase()
}
}
+#ifdef APPLE_CHANGES
+void PluginBase::ref()
+{
+ m_refCount++;
+}
+
+void PluginBase::unref()
+{
+ m_refCount--;
+ if ( m_refCount==0 ) {
+ delete plugins;
+ delete mimes;
+ plugins = 0;
+ mimes = 0;
+ }
+}
+
+#endif
+
/*******************************************************************/
IMPLEMENT_PROTOFUNC(PluginsFunc)
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list