Reviewed by Kevin.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 9 Oct 2004 21:46:47 +0000 (21:46 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 9 Oct 2004 21:46:47 +0000 (21:46 +0000)
        - fixed <rdar://problem/3804665> REGRESSION: WebCore framework now has many init routines

        * khtml/xml/dom_nodeimpl.h: Changed anyQName declaration to not use the inline function
        makeId. Surprisingly, the inline function was not "constant-folded" and we ended up with
        a copy of the function in each file as an init routine for the framework.

        * khtml/ecma/kjs_html.cpp: (Gradient::colorStops): Get rid of initialized ColorStop
        globals; their constructors were showing up as init routines for the framework.

        * khtml/rendering/render_style.h: Got rid of inline initialDashboardRegions function.
        * khtml/rendering/render_style.cpp: (RenderStyle::initialDashboardRegions): Made this
        a normal function. When it was an inline function, the constructors for the per-file
        copies of the globals were showing up as init routines for the framework.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7797 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/khtml/ecma/kjs_html.cpp
WebCore/khtml/rendering/render_style.cpp
WebCore/khtml/rendering/render_style.h
WebCore/khtml/xml/dom_nodeimpl.h

index 4dc1b41d92bd4013eaaadfd8602e29a6178bf0d8..670f6e5e0d5ab932cfcfd9694065016563f343ec 100644 (file)
@@ -1,3 +1,21 @@
+2004-10-09  Darin Adler  <darin@apple.com>
+
+        Reviewed by Kevin.
+
+        - fixed <rdar://problem/3804665> REGRESSION: WebCore framework now has many init routines
+
+        * khtml/xml/dom_nodeimpl.h: Changed anyQName declaration to not use the inline function
+        makeId. Surprisingly, the inline function was not "constant-folded" and we ended up with
+        a copy of the function in each file as an init routine for the framework.
+
+        * khtml/ecma/kjs_html.cpp: (Gradient::colorStops): Get rid of initialized ColorStop
+        globals; their constructors were showing up as init routines for the framework.
+
+        * khtml/rendering/render_style.h: Got rid of inline initialDashboardRegions function.
+        * khtml/rendering/render_style.cpp: (RenderStyle::initialDashboardRegions): Made this
+        a normal function. When it was an inline function, the constructors for the per-file
+        copies of the globals were showing up as init routines for the framework.
+
 2004-10-09  Chris Blumenberg  <cblu@apple.com>
 
        Fixed: 
index 89b0a5899b5a70482a3388247bf5b73553b63b66..003ebda6e61a8075f51ad42bc7641039610a0301 100644 (file)
@@ -4867,11 +4867,6 @@ static int sortStops(const ColorStop *a, const ColorStop *b)
     return 0;
 }
 
-// If not specified use default start (stop 0) and end (stop 1)
-// colors.  This color will be transparent black.
-static ColorStop defaultStartStop = ColorStop(0.f, 0.f, 0.f, 0.f, 1.f);
-static ColorStop defaultEndStop = ColorStop(1.f, 0.f, 0.f, 0.f, 1.f);
-
 // Return a sorted array of stops guaranteed to contain a 0 and 1 stop.
 const ColorStop *Gradient::colorStops(int *count) const
 {
@@ -4900,11 +4895,14 @@ const ColorStop *Gradient::colorStops(int *count) const
             adjustedStops = (ColorStop *)malloc(adjustedStopCount * sizeof(ColorStop));
             memcpy (haveZeroStop ? adjustedStops : adjustedStops+1,
                 stops, stopCount*sizeof(ColorStop));
+
+            // If not specified use default start (stop 0) and end (stop 1) colors.
+            // This color will be transparent black.
             if (!haveZeroStop) {
-                adjustedStops[0] = defaultStartStop;
+                adjustedStops[0] = ColorStop(0.f, 0.f, 0.f, 0.f, 1.f);
             }
             if (!haveOneStop) {
-                adjustedStops[adjustedStopCount-1] = defaultEndStop;
+                adjustedStops[adjustedStopCount-1] = ColorStop(1.f, 0.f, 0.f, 0.f, 1.f);
             }
         }
         
index 820c4bf326b23bf88ec2a008cf5da3da7b006166..52f0240307b099f0c3a4ecc46096f723bcade3b9 100644 (file)
@@ -928,3 +928,9 @@ bool ShadowData::operator==(const ShadowData& o) const
     
     return x == o.x && y == o.y && blur == o.blur && color == o.color;
 }
+
+const QValueList<StyleDashboardRegion>& RenderStyle::initialDashboardRegions()
+{ 
+    static QValueList<StyleDashboardRegion> emptyList;
+    return emptyList;
+}
index 6de4c20b61203bacdf1aaf2654c15ff49b487426..6a1bc9505b9c806aa71aa98f2a9f205ed041cfad 100644 (file)
@@ -1484,10 +1484,7 @@ public:
     // Keep these at the end.
     static int initialLineClamp() { return -1; }
     static bool initialTextSizeAdjust() { return true; }
-    static const QValueList<StyleDashboardRegion>& initialDashboardRegions() { 
-        static QValueList<StyleDashboardRegion> emptyList;
-        return emptyList;
-    }
+    static const QValueList<StyleDashboardRegion>& initialDashboardRegions();
 #endif
 };
 
index e7f80e8c2955e7e5c2595f583233f73e762d9786..99f6ad74ab34e596e3fccec2b1d08fc680057458 100644 (file)
@@ -75,7 +75,8 @@ inline Q_UINT16 namespacePart(Q_UINT32 i) { return i >> 16; }
 inline Q_UINT16 localNamePart(Q_UINT32 i) { return i; }
 inline Q_UINT32 makeId(Q_UINT16 n, Q_UINT16 l) { return (n << 16) | l; }
 
-const Q_UINT32 anyQName = makeId(anyNamespace, anyLocalName);
+// Can't use makeId here because it results in an "initroutine".
+const Q_UINT32 anyQName = anyNamespace << 16 | anyLocalName;
 
 class DocumentPtr : public khtml::Shared<DocumentPtr>
 {