Closed Bug 12237 Opened 26 years ago Closed 26 years ago

xpcom/proxy should use new nsXPTMethodInfo::IsNotXPCOM()

Categories

(Core :: XPCOM, defect, P3)

x86
Windows NT
defect

Tracking

()

RESOLVED FIXED

People

(Reporter: jband_mozilla, Assigned: dougt)

Details

The 'hidden' flag in the typelib ought to be more than one bit. Right now it means either [notxpcom] or [noscript]. We need a way to make it clear that a given method is simply not xpcom compilant and not callable despite the language mapping preference ([notxpcom]). In addition to that we want to express the interface author's preferences about whether or not the method ought not be reflected into some given mapping ([noscript] etc.) This is broken for xpcom/proxy because it does not want to be limited to reflecting only the JavaScript reflectable methods. But it must be able to know when a method simply is not callable using the xptcall infrastructure. The similar problem exists in mrking interfaces via [scriptable].
Marking as assigned.
Status: NEW → ASSIGNED
Assignee: mccabe → jband
Status: ASSIGNED → NEW
I'll fix this.
I've added nsXPTMethodInfo::IsNotXPCOM(). The compiler now sets this flag for all methods marked [notxpcom]. The compiler only checkes for [notxpcom]. It does not take into account things like native params. [notxpcom] is expected to be used for methods that return something other than an nsresult. xptcall can not handle such methods. Proxy should now check this flag when determining whether or not a given method can be called using xptcall. xpconnect has already been changed to respect this flag.
Assignee: jband → dougt
Summary: typelib 'hidden' flag is not rich enough → xpcom/proxy should use new nsXPTMethodInfo::IsNotXPCOM()
Status: NEW → ASSIGNED
very nice. added: Index: src/nsProxyEvent.cpp =================================================================== RCS file: /cvsroot/mozilla/xpcom/proxy/src/nsProxyEvent.cpp,v retrieving revision 1.18 diff -c -r1.18 nsProxyEvent.cpp *** nsProxyEvent.cpp 1999/09/01 20:04:22 1.18 --- nsProxyEvent.cpp 1999/09/03 16:24:20 *************** *** 141,146 **** --- 141,148 ---- return NS_ERROR_OUT_OF_MEMORY; + if (methodInfo->IsNotXPCOM()) + return NS_ERROR_PROXY_INVALID_IN_PARAMETER; /////////////////////////////////////////////////////////////////////// // Auto-proxification ///////////////////////////////////////////////////////////////////////
Status: ASSIGNED → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
checked in. closing.
Component: xpidl → XPCOM
QA Contact: mike+mozilla → xpcom
You need to log in before you can comment on or make changes to this bug.