Closed Bug 310102 Opened 19 years ago Closed 19 years ago

XPCDispTearOff::Invoke() processes DISPARAMS in wrong direction

Categories

(Core :: XPConnect, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: gdavis, Assigned: dbradley)

Details

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7 (ax)
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7 (ax)

IDispatch::Invoke() expects parameters to be ordered like the "__cdecl" calling
convention and not the "__pascal" calling convention.  Therefore, anyone calling
an XPCDispTearOff method will pass the params ordered from right-to-left, but
the Invoke() handler is processing the params from left-to-right.

Reproducible: Always

Steps to Reproduce:
1. Call multi-parameter method using Invoke().
2. The JavaScript method parameters will be reversed.

Actual Results:  
The parameters are reversed.

Expected Results:  
The parameters should not be reversed.
Attachment #199083 - Flags: review?(dbradley)
Comment on attachment 199083 [details] [diff] [review]
Diff of patch reversing the processing order of DISPPARAMS

r=dbradley

I was playing with this myself. Patch looks good. NOTE: this is IDispatch only
code, so no risk outside of IDispatch
Attachment #199083 - Flags: superreview?(jst)
Attachment #199083 - Flags: review?(dbradley)
Attachment #199083 - Flags: review+
And thanks again Garrett for stepping up.
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Comment on attachment 199083 [details] [diff] [review]
Diff of patch reversing the processing order of DISPPARAMS

sr=jst
Attachment #199083 - Flags: superreview?(jst) → superreview+
(In reply to comment #2)
> (From update of attachment 199083 [details] [diff] [review] [edit])
> r=dbradley
> 
> I was playing with this myself. Patch looks good. NOTE: this is IDispatch only
> code, so no risk outside of IDispatch
> 

Could you land this for me please David? I'd like to get this incorporated into my builds without having to apply the patch.

Thanks

P.S. I would like to see about getting myself permission to assign bugs to myself and/or the ability to land patches myself.
Fix landed on the trunk. FIXED.
Status: ASSIGNED → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Attachment #199083 - Flags: approval1.8.0.2?
For the record, this caused VC6 builds to fail, this change is needed in addition to landing this patch:

http://bonsai.mozilla.org/cvsview2.cgi?diff_mode=context&whitespace_mode=show&subdir=mozilla/js/src/xpconnect/src&command=DIFF_FRAMESET&file=XPCDispTearOff.cpp&rev1=1.15&rev2=1.16&root=/cvsroot
Comment on attachment 199083 [details] [diff] [review]
Diff of patch reversing the processing order of DISPPARAMS

Maybe for 1.8 branch (Firefox 2), not 1.8.0.x
Attachment #199083 - Flags: approval1.8.0.2?
Attachment #199083 - Flags: approval1.8.0.2-
Attachment #199083 - Flags: approval-branch-1.8.1?(jst)
Attachment #199083 - Flags: approval-branch-1.8.1?(jst) → approval-branch-1.8.1+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: