Closed Bug 423821 Opened 16 years ago Closed 2 years ago

services expect their constructor to only be called once

Categories

(Core :: XPCOM, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: timeless, Unassigned)

Details

Attachments

(1 file)

there's code in the component manager guarded by XPCOM_CHECK_PENDING_CIDS which
would enable non abused factories not to use their own locking code (abused factories need bug 423633 too). let's just unconditionally enable it.

with XPCOM_CHECK_PENDING_CIDS, there is a promise by xpcom that it will not
call a factory for a getservice until it finishes the current attempt. and when
it succeeds, it would not need to call the factory again.
Attachment #310435 - Flags: review?(benjamin)
Comment on attachment 310435 [details] [diff] [review]
unconditionally use XPCOM_CHECK_PENDING_CIDS code

If we're going to turn this on in production, I'd prefer nsAutoTArray<const nsCID*, 8> so that we don't have to allocate in the common case.

And, this will need unit tests.
Attachment #310435 - Flags: review?(benjamin) → review-

The bug assignee is inactive on Bugzilla, so the assignee is being reset.

Assignee: timeless → nobody

XPCOM_CHECK_PENDING_CIDS doesn't exist any more, and the component manager has changed a lot in the last decade so I'll just close this.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: