Closed Bug 1380158 Opened 7 years ago Closed 7 years ago

Use IID parameter passed to mscom::ProxyStream constructor to simplify unmarshaling code

Categories

(Core :: Disability Access APIs, enhancement)

Unspecified
Windows
enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla56
Tracking Status
firefox56 --- fixed

People

(Reporter: bugzilla, Assigned: bugzilla)

References

(Blocks 1 open bug)

Details

Attachments

(1 file, 1 obsolete file)

In bug 1354077 I modified mscom::ProxyStream to accept an IID in its constructor for the unmarshaling case.

I just realized that this allows us to simplify the remaining code in such a way that we can remove an EnsureMTA call, which should be a perf win.
Previously we would unmarshal the proxy to an IUnknown, and then subsequently QI for the real interface in ProxyStream::GetInterface.

Now that we know the IID at constructor time, we can unmarshal directly to the desired interface and can drop that QI. Since that QI may happen on the MTA thread, getting rid of that allows us to eliminate a call to EnsureMTA and all of the thread synchronization that entails.
Attachment #8885468 - Flags: review?(jmathies)
Whoops, had to fix the pointer assignment in GetInterface.
Attachment #8885468 - Attachment is obsolete: true
Attachment #8885468 - Flags: review?(jmathies)
Attachment #8885480 - Flags: review?(jmathies)
Attachment #8885480 - Flags: review?(jmathies) → review+
https://hg.mozilla.org/integration/mozilla-inbound/rev/b049d1bf3c463d25fee6107b21a7640e6c5ac190
Bug 1380158: Use the aIID parameter supplied to mscom::ProxyStream's constructor to simplify and speed up proxy unmarshaling; r=jimm
https://hg.mozilla.org/mozilla-central/rev/b049d1bf3c46
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: