Closed Bug 22086 Opened 25 years ago Closed 25 years ago

Recent checkins, breaks HP build...

Categories

(SeaMonkey :: General, defect, P3)

x86
Other
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: jdunn, Assigned: jband_mozilla)

References

Details

The HPUX tinderboxes are reporting the following error
Error 229: "../../../../dom/src/base/nsJSWindow.cpp", line 2677 # Ambiguous
overloaded function call; a function match was not found
  that was strictly best for ALL arguments. Two functions that matched best for
some arguments (but not all) were "int operator
  ==(const nsIDOMEventTarget *,const nsIDOMEventTargetPtr &)"
["../../../../dom/src/base/nsJSWindow.cpp", line 79] and "bool
  operator ==(nsIDOMEventTarget *,nsIDOMEventTarget *)" [Built-in operator].
        if (nsnull == nativeThis) {
            ^^^^^^^^^^^^^^^^^^^^

I talked this over with Vidur and he surmised that this will in fact
break other platforms with upcoming checkins by jband that I believe will
 'enable' USE_COMPTR (in dom/tools/FileGen.h).
Blocks: 18687, 18688
Vidur suggests the following patch...the COMPtr part of which
is necessary for switching on USE_COMPTR.

Index: JSStubGen.cpp
===================================================================
RCS file: /cvsroot/mozilla/dom/tools/JSStubGen.cpp,v
retrieving revision 1.58
diff -c -r1.58 JSStubGen.cpp
*** JSStubGen.cpp       1999/12/17 00:26:08     1.58
--- JSStubGen.cpp       1999/12/17 23:54:02
***************
*** 1022,1028 ****
  "      return nsJSUtils::nsReportError(cx, NS_ERROR_DOM_SECURITY_ERR);\n"
  "    }\n"
  "  }\n"
! "\n"
  "  // If there's no private data, this must be the prototype, so ignore\n"
  "  if (nsnull == nativeThis) {\n"
  "    return JS_TRUE;\n"
--- 1022,1030 ----
  "      return nsJSUtils::nsReportError(cx, NS_ERROR_DOM_SECURITY_ERR);\n"
  "    }\n"
  "  }\n"
! "\n";
!
! static const char kMethodCheckNullStr[] =
  "  // If there's no private data, this must be the prototype, so ignore\n"
  "  if (nsnull == nativeThis) {\n"
  "    return JS_TRUE;\n"
***************
*** 1030,1035 ****
--- 1032,1049 ----
  "\n"
  "  {\n";

+ static const char kMethodCheckNullNonPrimaryStr[] =
+ "  // If there's no private data, this must be the prototype, so ignore\n"
+ #ifdef USE_COMPTR
+ "  if (!nativeThis) {\n"
+ #else
+ "  if (nativeThis.IsNull()) {\n"
+ #endif
+ "    return JS_TRUE;\n"
+ "  }\n"
+ "\n"
+ "  {\n";
+
  static const char kMethodObjectParamStr[] =
  #ifdef USE_COMPTR
  "    if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports
**)(void**)getter_AddRefs(b%d),\n"
***************
*** 1227,1232 ****
--- 1241,1252 ----

        sprintf(buf, kMethodBodyBeginStr, upr_iface_name,
                upr_method_name);
+       if (i == 0) {
+         *file << kMethodCheckNullStr;
+       }
+       else {
+         *file << kMethodCheckNullNonPrimaryStr;
+       }
        *file << buf;

        if (pcount > 0) {
Assignee: waterson → jband
I'll check this in with my changes.

Oh, and one small change - send out the buf before the new block...

        sprintf(buf, kMethodBodyBeginStr, upr_iface_name,
                upr_method_name);
        *file << buf;
+       if (i == 0) {
+         *file << kMethodCheckNullStr;
+       }
+       else {
+         *file << kMethodCheckNullNonPrimaryStr;
+       }
Adding Mike to cc list
Well, actually vidurs suggested reording of the output is a little cleaner since
if does the null check before the security check. I'll do it that way.
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
I did my checkin. Should be fixed. I see other bustage on the HP build on the
tinderbox ports page. I'm marking this fixed. Please reopen it if I'm wrong.
Status: RESOLVED → VERIFIED
I am verifying... jband's fix did it.
Obsolete DOM Viewer bugs -> Browser-General; DOM Viewer component is going away.
Component: DOM Viewer → Browser-General
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.