Closed Bug 99144 Opened 23 years ago Closed 23 years ago

nsIFactory needs to be frozen

Categories

(Core :: XPCOM, defect)

x86
Windows 2000
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: dougt, Assigned: dougt)

References

Details

Attachments

(3 files)

Blocks: 98278
I am not sure I like the comment describing this interface. How is this: A class factory allows creation of nsISupports derived objects without specifying a concrete base class.
r=dougt. rick, can you sr=.
Comment on attachment 49250 [details] [diff] [review] Updated patch based on Doug's comments we need to change the references to 'NS_TRUE' and 'NS_FALSE' to PR_TRUE/FALSE . These are the correct constants to use with PRBool. Also, (minor nit) in the general description... i'd change '... nsISupports derived objects...' to 'nsISupports derived components...'
Also, you might want to add that if an 'outer' object is supplied, but the component is not aggregatable, then 'NS_ERROR_NO_AGGREGATION' is returned. I don't know if you want to mention that this interface is binary compatable with COM's IClassFactory (assuming that it still is :-) )...
good catch. chak, can you pop another patch?
Comment on attachment 49377 [details] [diff] [review] Updated patch based on Rick's comments sr=rpotts@netscape.com looks good.
Attachment #49377 - Flags: superreview+
Changes just checked in. nsIFactory is now frozen
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
I just saw this bug when the update showed up in a notice on the meta-bug. Why do we have nsIFactory::lockFactory? How does it interact with nsIModule::canUnload? What is a "component", in the comment for createInstance? I know what an object is, but people use "component" to mean - binary DLL implementing some interfaces, - thing that is registered for a contract ID, - XPI-bundle of component[1]s and other resources - service (long-lived, singleton object) I think it's confusing to say that the method "creates an instance of a component", and then say that it returns a "component".
> Why do we have nsIFactory::lockFactory? So that a factory can be held in memory if we ever support dynamic component unloading. > How does it interact with nsIModule::canUnload? I would guess that there would be a high level of interaction between these two calls. If I locked the factory, I would expect nsIModule::canUnload to return false. > What is a "component", in the comment for createInstance? I know what an object is, but people use "component" to mean I agree, we can replace the word 'object' for 'component' everywhere in that file.
Talk me through needing to lock the factory in memory. Who needs that?
nsIFactory is another one of those 'COM compatable' interfaces :-) originally, LockFactory(...) was present because IClassFactory has it too. -- rick
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: