[Webkit-unassigned] [Bug 20197] New: WebKit does not compile on AIX

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jul 28 10:28:22 PDT 2008


https://bugs.webkit.org/show_bug.cgi?id=20197

           Summary: WebKit does not compile on AIX
           Product: WebKit
           Version: 420+
          Platform: Other
        OS/Version: Other
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: WebKit Qt
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: graeme at opekia.com
                CC: hausmann at webkit.org


Hi,

First off, apologies if this is filed against the wrong version of WebKit -
this pertains to whichever version was pulled into Qt 4.4.  I was trying to
compile Qt 4.4 on an IBM AIX 5.3 machine with version 7 of the XLC compiler,
and found that the WebKit portion didn't compile.  I'll attach a basic patch
showing what changes I had to make to the WebKit source to get it to compile
and run.  It is not functionally complete however - details below.  Since 2 out
of the 3 platforms we need to support have issues with WebKit (the other being
Solarix x86 with CC 5.8), we've decided that we can't use the WebKit shipping
with Qt 4.4, at least until we can ship on a more recent platform with
supported compilers, so I've stopped any further investigation on this.  The
reason I'm uploading this patch is simply because I didn't want the porting
work I did to go to waste (and we'll still need to build WebKit on IBM
eventually, even if it's not today).  With this patch, it should now compile
and link on IBM, so it's a step towards having some other kind soul figure out
the broken stuff mentioned below  :-)

I sent the following to Trolltech support, who suggested posting the bug
details here.  Please don't hesitate to get back to me if there are any
queries.  These are not all elegant fixes, so I'm not going to be offended if
these fixes don't make it in in the original format (eg. the rename of Function
to FunctionEnum) - I just wanted to get this stuff to compile and run to see if
it would fly ;-)

Best regards,
Graeme.

----Pasted email----

...

I was able to run the webkit previewer demo and open up google, although it
crashes as soon as I submit a search - see below.

Although many files were modified, it's mostly the same few things, but
distributed across a number of files.  For instance:

    * XLC won't use unqualified static functions in a namespace, so static
functions declared inside a .cpp inside a namespace still need to be prefixed
with <namespace>::, even if used within the namespace in which it is declared.
    * When using the C tertiary operator '<condition> ? <truething> :
<falsething>', XLC doesn't like it when the types of truething and falsething
are not completely identical.  I had to fix a number of cases where the
'truething' was a PassRefPtr and the 'falsething' was 0 or NULL by explicitly
calling the 'get()' method on the PassRefPtr to have it return the pointer to
the internally stored data.
    * In WebCore/css/CSSParser.h, struct Value has a union and enum which both
contain the member 'Function'.  I'm not sure why, but XLC stuffs these in the
same namespace and complains about a clash - I just renamed the enum to
FunctionEnum, and replaced occurrences of Value::Function with
Value::FunctionEnum elsewhere.

As yet unresolved issues:

    * In JavaScriptCore/kjs/collector.cpp:currentThreadStackBase(),
pthread_getattr_np is not defined on IBM.  This is a very platform-specific
function with lots of ifdefs.  I commented it out to get it to compile, however
it crashes on the first run through here.  From what I can gather, this
particular API is never the same on any two given platforms, and I couldn't
find a method on IBM to get thread info given a thread ID...
    * (Minor)  There are a ton of warnings like this:  The omitted keyword
"private" is assumed for base class "Noncopyable".  Classes inheriting from
Noncopyable do not have a qualifier, and are being declared like "class MyClass
: NonCopyable" instead of "class MyClass : public NonCopyable" (or private, or
protected...).  It can be resolved by being explicit about how it is being
inherited, however it's inherited in a LOT of places, so for the purposes of
compilation, I left this except in a few places where the compiler was being
especially spammy.


----Contents of patch file----

--- ./JavaScriptCore/bindings/npapi.h   2008-06-09 16:33:24.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./JavaScriptCore/bindings/npapi.h
   2008-07-25 12:01:26.000000000 -0700
@@ -131,6 +131,8 @@
 typedef short int16;
 #endif

+#if !PLATFORM( AIX_OS )
+// int32 defined in /usr/include/sys/inttypes.h on IBM
 #ifndef _INT32
 #define _INT32
 #ifdef __LP64__
@@ -139,6 +141,7 @@
 typedef long int32;
 #endif /* __LP64__ */
 #endif
+#endif /* !PLATFORM( AIX_OS) */

 #ifndef FALSE
 #define FALSE (0)
--- ./JavaScriptCore/kjs/DateMath.h     2008-06-09 16:33:24.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./JavaScriptCore/kjs/DateMath.h
     2008-07-23 10:34:29.000000000 -0700
@@ -101,7 +101,7 @@
         , year(inTm.tm_year)
         , isDST(inTm.tm_isdst)
     {
-#if !PLATFORM(WIN_OS) && !PLATFORM(SOLARIS_OS) && !PLATFORM(HPUX_OS)
+#if !PLATFORM(WIN_OS) && !PLATFORM(SOLARIS_OS) && !PLATFORM(HPUX_OS) &&
!PLATFORM(AIX_OS)
         utcOffset = static_cast<int>(inTm.tm_gmtoff);

         int inZoneSize = strlen(inTm.tm_zone) + 1;
@@ -128,7 +128,7 @@
         ret.tm_year  =  year;
         ret.tm_isdst =  isDST;

-#if !PLATFORM(WIN_OS) && !PLATFORM(SOLARIS_OS) && !PLATFORM(HPUX_OS)
+#if !PLATFORM(WIN_OS) && !PLATFORM(SOLARIS_OS) && !PLATFORM(HPUX_OS) &&
!PLATFORM(AIX_OS)
         ret.tm_gmtoff = static_cast<long>(utcOffset);
         ret.tm_zone = timeZone;
 #endif
--- ./JavaScriptCore/kjs/collector.cpp  2008-06-09 16:33:24.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./JavaScriptCore/kjs/collector.cpp
  2008-07-25 11:58:45.000000000 -0700
@@ -351,15 +351,27 @@
         // e.g. on FreeBSD 5.4, neundorf at kde.org
         pthread_attr_get_np(thread, &sattr);
 #else
+
+#if PLATFORM( AIX_OS )
         // FIXME: this function is non-portable; other POSIX systems may have
different np alternatives
+        printf("FIXME: pthread_getattr_np\n");
+        // Unimplemented on IBM...        
+#else 
         pthread_getattr_np(thread, &sattr);
 #endif
+        
+#endif
         int rc = pthread_attr_getstack(&sattr, &stackBase, &stackSize);
         (void)rc; // FIXME: deal with error code somehow?  seems fatal...
         ASSERT(stackBase);
+        if (!stackBase) {
+            printf(" -> somehow got past assert <-\n");
+        }
         pthread_attr_destroy(&sattr);
         stackThread = thread;
     }
+    printf("  stackBase=0x%x, stackSize=%d, returning 0x%x\n",
+           stackBase, stackSize, (void*)(size_t(stackBase) + stackSize));
     return (void*)(size_t(stackBase) + stackSize);
 #endif
 #else
--- ./JavaScriptCore/kjs/date_object.cpp        2008-06-09 16:33:24.000000000
-0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./JavaScriptCore/kjs/date_object.cpp
2008-07-23 11:01:57.000000000 -0700
@@ -1012,7 +1012,7 @@
                 return NaN;

             int sgn = (o < 0) ? -1 : 1;
-            o = abs(o);
+            o = abs((long double)o);
             if (*dateString != ':') {
                 offset = ((o / 100) * 60 + (o % 100)) * sgn;
             } else { // GMT+05:00
--- ./JavaScriptCore/kjs/nodes.h        2008-06-09 16:33:24.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./JavaScriptCore/kjs/nodes.h
2008-07-23 10:30:09.000000000 -0700
@@ -1046,7 +1046,7 @@
   class FuncExprNode : public Node {
   public:
     FuncExprNode(const Identifier &i, FunctionBodyNode *b, ParameterNode *p =
0) KJS_FAST_CALL 
-      : ident(i), param(p ? p->next.release() : 0), body(b) { if (p) {
Parser::removeNodeCycle(param.get()); } addParams(); }
+        : ident(i), param(p ? p->next.release().get() : 0), body(b) { if (p) {
Parser::removeNodeCycle(param.get()); } addParams(); }
     virtual JSValue *evaluate(ExecState*) KJS_FAST_CALL;
     virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
   private:
--- ./JavaScriptCore/wtf/Platform.h     2008-06-09 16:33:24.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./JavaScriptCore/wtf/Platform.h
     2008-07-23 10:34:23.000000000 -0700
@@ -61,6 +61,10 @@
 #define WTF_PLATFORM_HPUX_OS 1
 #endif

+#if defined(_AIX)
+#define WTF_PLATFORM_AIX_OS 1
+#endif
+
 /* PLATFORM(UNIX) */
 /* Operating system level dependencies for Unix-like systems that */
 /* should be used regardless of operating environment */
--- ./WebCore/css/CSSParser.cpp 2008-06-09 16:33:25.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./WebCore/css/CSSParser.cpp
 2008-07-23 11:18:20.000000000 -0700
@@ -72,7 +72,7 @@
 {
      size_t numValues = m_values.size();
      for (size_t i = 0; i < numValues; i++)
-         if (m_values[i].unit == Value::Function)
+         if (m_values[i].unit == Value::FunctionEnum)
              delete m_values[i].function;
 }

@@ -596,7 +596,7 @@
     case CSS_PROP_CLIP:                 // <shape> | auto | inherit
         if (id == CSS_VAL_AUTO)
             valid_primitive = true;
-        else if (value->unit == Value::Function)
+        else if (value->unit == Value::FunctionEnum)
             return parseShape(propId, important);
         break;

@@ -1358,7 +1358,7 @@
         break;

     case CSS_PROP__WEBKIT_DASHBOARD_REGION:                 //
<dashboard-region> | <dashboard-region> 
-        if (value->unit == Value::Function || id == CSS_VAL_NONE)
+        if (value->unit == Value::FunctionEnum || id == CSS_VAL_NONE)
             return parseDashboardRegions(propId, important);
         break;
     // End Apple-specific properties
@@ -1724,7 +1724,7 @@
             String value = parseURL(domString(val->string));
             parsedValue = new CSSImageValue(
                 String(KURL(styleElement->baseURL().deprecatedString(),
value.deprecatedString()).url()), styleElement);
-        } else if (val->unit == Value::Function) {
+        } else if (val->unit == Value::FunctionEnum) {
             // attr(X) | counter(X [,Y]) | counters(X, Y, [,Z])
             ValueList *args = val->function->args;
             String fname = domString(val->function->name).lower();
@@ -2080,7 +2080,7 @@
             region = nextRegion.get();
         }

-        if (value->unit != Value::Function) {
+        if (value->unit != Value::FunctionEnum) {
             valid = false;
             break;
         }
@@ -2559,7 +2559,7 @@
                 (!strict && value->unit == CSSPrimitiveValue::CSS_DIMENSION))
{
         if (!CSSParser::parseColor(domString(value->string), c, strict &&
value->unit == CSSPrimitiveValue::CSS_IDENT))
             return false;
-    } else if (value->unit == Value::Function &&
+    } else if (value->unit == Value::FunctionEnum &&
                 value->function->args != 0 &&
                 value->function->args->size() == 5 /* rgb + two commas */ &&
                 domString(value->function->name).lower() == "rgb(") {
@@ -2568,7 +2568,7 @@
             return false;
         c = makeRGB(colorValues[0], colorValues[1], colorValues[2]);
     } else if (!svg) {
-        if (value->unit == Value::Function &&
+        if (value->unit == Value::FunctionEnum &&
                 value->function->args != 0 &&
                 value->function->args->size() == 7 /* rgba + three commas */
&&
                 domString(value->function->name).lower() == "rgba(") {
@@ -2576,7 +2576,7 @@
             if (!parseColorParameters(value, colorValues, true))
                 return false;
             c = makeRGBA(colorValues[0], colorValues[1], colorValues[2],
colorValues[3]);
-        } else if (value->unit == Value::Function &&
+        } else if (value->unit == Value::FunctionEnum &&
                     value->function->args != 0 &&
                     value->function->args->size() == 5 /* hsl + two commas */
&&
                     domString(value->function->name).lower() == "hsl(") {
@@ -2584,7 +2584,7 @@
             if (!parseHSLParameters(value, colorValues, false))
                 return false;
             c = makeRGBAFromHSLA(colorValues[0], colorValues[1],
colorValues[2], 1.0);
-        } else if (value->unit == Value::Function &&
+        } else if (value->unit == Value::FunctionEnum &&
                     value->function->args != 0 &&
                     value->function->args->size() == 7 /* hsla + three commas
*/ &&
                     domString(value->function->name).lower() == "hsla(") {
@@ -3204,7 +3204,7 @@

 Value& CSSParser::sinkFloatingValue(Value& value)
 {
-    if (value.unit == Value::Function) {
+    if (value.unit == Value::FunctionEnum) {
         ASSERT(m_floatingFunctions.contains(value.function));
         m_floatingFunctions.remove(value.function);
     }
--- ./WebCore/css/CSSParser.h   2008-06-09 16:33:25.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./WebCore/css/CSSParser.h
   2008-07-23 11:17:29.000000000 -0700
@@ -66,7 +66,7 @@
         };
         enum {
             Operator = 0x100000,
-            Function = 0x100001,
+            FunctionEnum = 0x100001,
             Q_EMS    = 0x100002
         };
         int unit;
--- ./WebCore/dom/NamedNodeMap.h        2008-06-09 16:33:25.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./WebCore/dom/NamedNodeMap.h
2008-07-24 14:00:30.000000000 -0700
@@ -29,6 +29,10 @@
 #include "Shared.h"
 #include <wtf/PassRefPtr.h>

+// AIX requires full class declaration for Node during implicit invocation
+// of PassRefPtr<Node> destructor in return-by-value setNamedItemNS
+#include "Node.h"
+
 namespace WebCore {

 class Node;
--- ./WebCore/editing/CompositeEditCommand.cpp  2008-06-09 16:33:25.000000000
-0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./WebCore/editing/CompositeEditCommand.cpp
  2008-07-23 11:27:33.000000000 -0700
@@ -730,7 +730,7 @@

     // FIXME: This is an inefficient way to preserve style on nodes in the
paragraph to move.  It 
     // shouldn't matter though, since moved paragraphs will usually be quite
small.
-    RefPtr<DocumentFragment> fragment = startOfParagraphToMove !=
endOfParagraphToMove ? createFragmentFromMarkup(document(),
createMarkup(range.get(), 0, DoNotAnnotateForInterchange, true), "") : 0;
+    RefPtr<DocumentFragment> fragment = startOfParagraphToMove !=
endOfParagraphToMove ? createFragmentFromMarkup(document(),
createMarkup(range.get(), 0, DoNotAnnotateForInterchange, true), "").get() : 0;

     // FIXME (5098931): We should add a new insert action
"WebViewInsertActionMoved" and call shouldInsertFragment here.

--- ./WebCore/editing/DeleteSelectionCommand.cpp        2008-06-09
16:33:25.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./WebCore/editing/DeleteSelectionCommand.cpp
2008-07-23 11:28:25.000000000 -0700
@@ -718,7 +718,7 @@

     fixupWhitespace();

-    RefPtr<Node> placeholder = m_needPlaceholder ?
createBreakElement(document()) : 0;
+    RefPtr<Node> placeholder = m_needPlaceholder ?
createBreakElement(document()).get() : 0;

     mergeParagraphs();

--- ./WebCore/generated/CSSGrammar.cpp  2008-06-09 16:33:25.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./WebCore/generated/CSSGrammar.cpp
  2008-07-24 15:09:44.000000000 -0700
@@ -3174,7 +3174,7 @@
         f->name = (yyvsp[(1) - (5)].string);
         f->args = p->sinkFloatingValueList((yyvsp[(3) - (5)].valueList));
         (yyval.value).id = 0;
-        (yyval.value).unit = Value::Function;
+        (yyval.value).unit = Value::FunctionEnum;
         (yyval.value).function = f;
     ;}
     break;
@@ -3187,7 +3187,7 @@
         f->name = (yyvsp[(1) - (3)].string);
         f->args = 0;
         (yyval.value).id = 0;
-        (yyval.value).unit = Value::Function;
+        (yyval.value).unit = Value::FunctionEnum;
         (yyval.value).function = f;
   ;}
     break;
--- ./WebCore/ksvg2/svg/SVGElement.cpp  2008-06-09 16:33:26.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./WebCore/ksvg2/svg/SVGElement.cpp
  2008-07-24 13:44:44.000000000 -0700
@@ -168,7 +168,7 @@
         event->setTarget(currentTarget);
         ExceptionCode ignored = 0;
         dispatchGenericEvent(event.release(), ignored, false);
-        currentTarget = (parent && parent->isSVGElement()) ?
static_pointer_cast<SVGElement>(parent) : 0;
+        currentTarget = (parent && parent->isSVGElement()) ?
static_pointer_cast<SVGElement>(parent).get() : 0;
     }
 }

--- ./WebCore/loader/icon/IconDatabase.cpp      2008-06-09 16:33:26.000000000
-0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./WebCore/loader/icon/IconDatabase.cpp
      2008-07-24 13:41:34.000000000 -0700
@@ -553,7 +553,7 @@
     if (!isOpen() || iconURLOriginal.isEmpty())
         return;

-    RefPtr<SharedBuffer> data = dataOriginal ? dataOriginal->copy() : 0;
+    RefPtr<SharedBuffer> data = dataOriginal ? dataOriginal->copy().get() : 0;
     String iconURL = iconURLOriginal.copy();

     Vector<String> pageURLs;
--- ./WebCore/platform/Shared.h 2008-06-09 16:33:26.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./WebCore/platform/Shared.h
 2008-07-23 11:29:39.000000000 -0700
@@ -26,7 +26,7 @@

 namespace WebCore {

-template<class T> class Shared : Noncopyable {
+template<class T> class Shared : private Noncopyable {
 public:
     Shared()
         : m_refCount(0)
@@ -71,7 +71,7 @@
 #endif
 };

-template<class T> class TreeShared : Noncopyable {
+template<class T> class TreeShared : private Noncopyable {
 public:
     TreeShared()
         : m_refCount(0)
--- ./WebCore/platform/graphics/PathTraversalState.cpp  2008-06-09
16:33:26.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./WebCore/platform/graphics/PathTraversalState.cpp
  2008-07-24 11:47:33.000000000 -0700
@@ -84,7 +84,7 @@

     float approximateDistance() const
     {
-        return distanceLine(start, control1) + distanceLine(control1,
control2) + distanceLine(control2, end);
+        return WebCore::distanceLine(start, control1) +
WebCore::distanceLine(control1, control2) + WebCore::distanceLine(control2,
end);
     }

     void split(CubicBezier& left, CubicBezier& right) const
@@ -125,7 +125,7 @@
     float totalLength = 0.0f;
     do {
         float length = curve.approximateDistance();
-        if ((length - distanceLine(curve.start, curve.end)) >
kPathSegmentLengthTolerance) {
+        if ((length - WebCore::distanceLine(curve.start, curve.end)) >
kPathSegmentLengthTolerance) {
             CurveType left, right;
             curve.split(left, right);
             curve = left;
@@ -159,7 +159,7 @@

 float PathTraversalState::closeSubpath()
 {
-    float distance = distanceLine(m_current, m_start);
+    float distance = WebCore::distanceLine(m_current, m_start);
     m_start = m_control1 = m_control2 = m_current;
     return distance;
 }
@@ -172,7 +172,7 @@

 float PathTraversalState::lineTo(const FloatPoint& point)
 {
-    float distance = distanceLine(m_current, point);
+    float distance = WebCore::distanceLine(m_current, point);
     m_current = m_control1 = m_control2 = point;
     return distance;
 }
--- ./WebCore/rendering/RenderStyle.h   2008-06-09 16:33:26.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./WebCore/rendering/RenderStyle.h
   2008-07-24 11:16:49.000000000 -0700
@@ -694,6 +694,14 @@

 //------------------------------------------------

+#if PLATFORM( AIX_OS )
+// AIX defines TSNONE in /usr/include/thread.h
+#if defined TSNONE
+#undef TSNONE
+#endif
+#endif
+
+
 enum ETextSecurity {
     TSNONE, TSDISC, TSCIRCLE, TSSQUARE
 };
--- ./WebCore/rendering/bidi.cpp        2008-06-09 16:33:26.000000000 -0700
+++
../../../../../4.4.1/qt-x11-opensource-src-4.4.1-snapshot-20080610/src/3rdparty/webkit/./WebCore/rendering/bidi.cpp
2008-07-24 12:02:04.000000000 -0700
@@ -300,13 +300,13 @@
             }
         }
         if (skipInlines && o->firstChild())
-            o = bidiNext(block, o, bidi, skipInlines);
+            o = WebCore::bidiNext(block, o, bidi, skipInlines);
         else
             return o; // Never skip empty inlines.
     }

     if (o && !o->isText() && !o->isBR() && !o->isReplaced() &&
!o->isFloating() && !o->isPositioned())
-        o = bidiNext(block, o, bidi, skipInlines);
+        o = WebCore::bidiNext(block, o, bidi, skipInlines);
     return o;
 }

@@ -317,11 +317,11 @@
     if (obj->isText()) {
         pos++;
         if (pos >= static_cast<RenderText *>(obj)->textLength()) {
-            obj = bidiNext(block, obj, bidi);
+            obj = WebCore::bidiNext(block, obj, bidi);
             pos = 0;
         }
     } else {
-        obj = bidiNext(block, obj, bidi);
+        obj = WebCore::bidiNext(block, obj, bidi);
         pos = 0;
     }
 }
@@ -463,7 +463,7 @@
         start = nextMidpoint.pos;
         sCurrMidpoint++;
         if (start < end)
-            return appendRunsForObject(start, end, obj, bidi);
+            return WebCore::appendRunsForObject(start, end, obj, bidi);
     }
     else {
         if (!smidpoints || !haveNextMidpoint || (obj != nextMidpoint.obj)) {
@@ -480,7 +480,7 @@
                 if (int(nextMidpoint.pos+1) > start)
                     bidi.addRun(new (obj->renderArena())
                         BidiRun(start, nextMidpoint.pos+1, obj,
bidi.context(), bidi.dir()));
-                return appendRunsForObject(nextMidpoint.pos+1, end, obj,
bidi);
+                return WebCore::appendRunsForObject(nextMidpoint.pos+1, end,
obj, bidi);
             }
         }
         else
@@ -499,9 +499,9 @@
     int start = sor.pos;
     RenderObject *obj = sor.obj;
     while (obj && obj != eor.obj && obj != endOfLine.obj) {
-        appendRunsForObject(start, obj->length(), obj, *this);        
+        WebCore::appendRunsForObject(start, obj->length(), obj, *this);        
         start = 0;
-        obj = bidiNext(sor.block, obj, *this);
+        obj = WebCore::bidiNext(sor.block, obj, *this);
     }
     if (obj) {
         unsigned pos = obj == eor.obj ? eor.pos : UINT_MAX;
@@ -511,7 +511,7 @@
         }
         // It's OK to add runs for zero-length RenderObjects, just don't make
the run larger than it should be
         int end = obj->length() ? pos+1 : 0;
-        appendRunsForObject(start, end, obj, *this);
+        WebCore::appendRunsForObject(start, end, obj, *this);
     }

     eor.increment(*this);
@@ -882,7 +882,7 @@
                     o->dirtyLineBoxes(fullLayout);
                 o->setNeedsLayout(false);
             }
-            o = bidiNext(this, o, bidi, false, &endOfInline);
+            o = WebCore::bidiNext(this, o, bidi, false, &endOfInline);
         }

         if (hasFloat)
@@ -1475,7 +1475,7 @@
                 //
                 // Optimize for a common case. If we can't find whitespace
after the list
                 // item, then this is all moot. -dwh
-                RenderObject* next = bidiNext(start.block, o, bidi);
+                RenderObject* next = WebCore::bidiNext(start.block, o, bidi);
                 if (style()->collapseWhiteSpace() && next && !next->isBR() &&
next->isText() && static_cast<RenderText*>(next)->textLength() > 0) {
                     RenderText *nextText = static_cast<RenderText*>(next);
                     UChar nextChar = nextText->characters()[0];
@@ -1751,7 +1751,7 @@
         } else
             ASSERT_NOT_REACHED();

-        RenderObject* next = bidiNext(start.block, o, bidi);
+        RenderObject* next = WebCore::bidiNext(start.block, o, bidi);
         bool checkForBreak = autoWrap;
         if (w && w + tmpW > width && lBreak.obj && currWS == NOWRAP)
             checkForBreak = true;


-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list