Closed Bug 120474 Opened 23 years ago Closed 22 years ago

Identify and Move required static classes into glue lib

Categories

(Core :: XPCOM, defect)

x86
Windows 2000
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla1.0

People

(Reporter: dougt, Assigned: dougt)

References

Details

(Keywords: topembed+)

Attachments

(2 obsolete files)

 
Target Milestone: --- → mozilla1.0
Here is adams's listing:


This is the list that my 1 month old debug copy of gbrowser.dll says it takes
from xpcom.dll.

NS_ConvertUTF8toUCS2::NS_ConvertUTF8toUCS2(char const *)
nsAutoString::nsAutoString(class nsAutoString const &)
nsAutoString::nsAutoString(unsigned short const *)
nsAutoString::nsAutoString(void)
nsCAutoString::nsCAutoString(void)
nsCString::nsCString(class nsCString const &)
nsCString::nsCString(char const *)
nsCString::nsCString(void)
nsCreateInstanceByContractID::nsCreateInstanceByContractID(char const *,class
nsISupports *,unsigned int *)
nsDependentString::nsDependentString(unsigned short const *,unsigned int)
nsGetServiceByCID::nsGetServiceByCID(struct nsID const &,class nsISupports
*,unsigned int *)
nsGetServiceByContractID::nsGetServiceByContractID(char const *,class
nsISupports *,unsigned int *)
nsQueryInterface::nsQueryInterface(class nsISupports *,unsigned int *)
nsString::nsString(class nsString const &)
nsString::nsString(unsigned short const *)
nsString::nsString(void)
nsSupportsWeakReference::nsSupportsWeakReference(void)
nsXPIDLCString::nsXPIDLCString(void)
nsXPIDLString::nsXPIDLString(void)
NS_ConvertUTF8toUCS2::~NS_ConvertUTF8toUCS2(void)
nsAutoString::~nsAutoString(void)
nsCAutoString::~nsCAutoString(void)
nsCString::~nsCString(void)
nsDependentString::~nsDependentString(void)
nsGetServiceByCID::~nsGetServiceByCID(void)
nsGetServiceByContractID::~nsGetServiceByContractID(void)
nsString::~nsString(void)
nsSupportsWeakReference::~nsSupportsWeakReference(void)
nsXPIDLCString::~nsXPIDLCString(void)
nsXPIDLString::~nsXPIDLString(void)
class nsAString & nsAString::operator=(class nsAString const &)
class nsAutoString & nsAutoString::operator=(class nsAutoString const &)
class nsAutoString & nsAutoString::operator=(class nsAString const &)
class nsAutoString & nsAutoString::operator=(unsigned short const *)
class nsCAutoString & nsCAutoString::operator=(class nsACString const &)
class nsCString & nsCString::operator=(class nsCString const &)
class nsCString & nsCString::operator=(char const *)
class nsString & nsString::operator=(class nsString const &)
class nsString & nsString::operator=(class nsAString const &)
class nsString & nsString::operator=(unsigned short const *)
nsCString::operator char const *(void)
nsXPIDLCString::operator char const *(void)
nsXPIDLString::operator unsigned short const *(void)
unsigned int nsGetInterface::operator()(struct nsID const &,void * *)
unsigned int nsQueryElementAt::operator()(struct nsID const &,void * *)
unsigned int nsQueryReferent::operator()(struct nsID const &,void * *)
class nsACString & nsACString::operator+=(class nsACString const &)
class nsACString & nsACString::operator+=(char const *)
class nsAString & nsAString::operator+=(class nsAString const &)
class nsAString & nsAString::operator+=(unsigned short const *)
void nsXPIDLCString::Adopt(char *)
void * nsMemory::Alloc(unsigned int)
void nsAString::Append(class nsAString const &)
void nsAString::Append(unsigned short const *)
void nsString::AppendInt(int,int)
void nsString::AppendWithConversion(char const *,int)
void nsDebug::Assertion(char const *,char const *,char const *,int)
void nsAString::Assign(class nsAString const &)
void nsString::AssignWithConversion(char const *)
int nsString::CompareWithConversion(unsigned short const *,int,int)
void nsString::CompressWhitespace(int,int)
unsigned int nsComponentManager::CreateInstance(struct nsID const &,class
nsISupports *,struct nsID const &,void * *)
int nsAString::Equals(unsigned short const *)
int nsCString::EqualsIgnoreCase(char const *,int)
int nsString::EqualsIgnoreCase(class nsString const &)
int nsString::EqualsIgnoreCase(char const *,int)
int nsString::EqualsWithConversion(char const *,int,int)
int nsCString::Find(char const *,int,int,int)
int nsString::Find(char const *,int,int,int)
int nsString::Find(unsigned short const *,int,int,int)
int nsCString::FindChar(unsigned short,int,int,int)
int nsString::FindChar(unsigned short,int,int,int)
void nsMemory::Free(void *)
unsigned int nsSupportsWeakReference::GetWeakReference(class nsIWeakReference * *)
void nsString::InsertWithConversion(char const *,unsigned int,int)
int nsACString::IsEmpty(void)
int nsAString::IsEmpty(void)
unsigned int nsAString::Left(class nsAString &,unsigned int)
unsigned int nsAFlatCString::Length(void)
unsigned int nsAFlatString::Length(void)
unsigned int nsCString::Length(void)
unsigned int nsString::Length(void)
void nsTraceRefcnt::LogAddRef(void *,unsigned long,char const *,unsigned int)
void nsTraceRefcnt::LogRelease(void *,unsigned long,char const *)
unsigned int nsAString::Mid(class nsAString &,unsigned int,unsigned int)
class nsIWeakReference * NS_GetWeakReference(class nsISupports *,unsigned int *)
class nsIAtom * NS_NewAtom(char const *)
void nsDebug::PreCondition(char const *,char const *,char const *,int)
char * * nsXPIDLCString::PrepareForUseAsOutParam(void)
unsigned short * * nsXPIDLString::PrepareForUseAsOutParam(void)
unsigned int nsComponentManager::RegisterFactory(struct nsID const &,char const
*,char const *,class nsIFactory *,int)
unsigned int nsACString::Right(class nsACString &,unsigned int)
unsigned int nsAString::Right(class nsAString &,unsigned int)
void nsString::SetLength(unsigned int)
void nsCString::StripChar(char,int)
void nsString::StripWhitespace(void)
char * nsString::ToCString(char *,unsigned int,unsigned int)
int nsCString::ToInteger(int *,unsigned int)
char * nsCString::ToNewCString(void)
char * nsString::ToNewCString(void)
char * ToNewUTF8String(class nsAString const &)
unsigned short * nsString::ToNewUnicode(void)
void nsCString::Trim(char const *,int,int,int)
void nsACString::Truncate(unsigned int)
void nsAString::Truncate(unsigned int)
int nsDebug::WarnIfFalse(char const *,char const *,char const *,int)
void nsDebug::Warning(char const *,char const *,int)
void nsCOMPtr_base::assign_with_AddRef(class nsISupports *)
void nsCRT::free(char *)
char const * nsAFlatCString::get(void)
unsigned short const * nsAFlatString::get(void)
char const * nsCString::get(void)
unsigned short const * nsString::get(void)
int nsCRT::strcmp(unsigned short const *,unsigned short const *)
char * nsCRT::strdup(char const *)
unsigned int nsCRT::strlen(char const *)

Strings has been moved
nsMemory has been moved.

Need to move 
nsSupportsWeakReference
nsCRT (or question it is being used)
nsDebug (or question it is being used)
nsTraceRefcnt (or question it is being used)
 
Actually, I question also why nsSupportsWeakReference is being used too.  This
class does nothing really special.  Why cant embedders copy this functionality?
alec and I spoke a bit about this.  we agreed that nsDebug and nsWeakReference
should be made part of the glue library.
xpcom/base/{nsDebug,nsWeakReference}.* have been copied to xpcom/glue (thanks
endico).
Comment on attachment 68478 [details] [diff] [review]
Move nsDebug.cpp & nsWeakReference.cpp into xpcomglue

r=dougt.  We need to get the mac up to speed.
Attachment #68478 - Flags: review+
Thanks for the patch.  Looks good.  Lets make sure to cvs remove the xpcom/base
files when this is checked in.  With that said, I am not sure we can ignore the
mac build.
Since we don't actually build sub-libraries on the classic mac builds and ::glue
is already in the search path, I don't think there's anything that needs to be
done for the mac.
Great news.
alec, jband, can one of you sr= this patch?
Summary: Identify and Move required status classes into glue lib → Identify and Move required static classes into glue lib
Comment on attachment 68478 [details] [diff] [review]
Move nsDebug.cpp & nsWeakReference.cpp into xpcomglue

sr=alecf
Attachment #68478 - Flags: superreview+
Comment on attachment 68478 [details] [diff] [review]
Move nsDebug.cpp & nsWeakReference.cpp into xpcomglue

Sorry, this patch has already been checked in.	I thought everyone saw the red
from it.  Note for future reference: don't forget to update the MANIFEST files
when moving headers.
Attachment #68478 - Attachment is obsolete: true
Depends on: 108233
probably should be moved into glue:

nsISupportsImpl.h 
nsISupportsUtils.h
nsIWeakReferenceUtils.h
nsIInterfaceRequestorUtils.h

alec, rick, objections on moving the above headers to glue?
Can't think of any reason why not...
Chris, can you cvs move these files to xpcom/glue?
Keywords: topembed
Nope, I don't have direct access to the cvs repo.  These requests should really
go straight to dawn & leaf.
Move which files where? give complete path names. When i looked at this
earlier I didn't find the files you listed.
/xpcom/base/nsISupportsImpl.h 
/xpcom/base/nsISupportsUtils.h 
/xpcom/base/nsIWeakReferenceUtils.h 
/xpcom/base/nsIInterfaceRequestorUtils.h 

to

/xpcom/glue/*



Three more additions (since 108233 landed)

xpcom/components/nsGenericModule.h
xpcom/components/nsGenericModule.cpp
xpcom/components/nsIGenericFactory.idl

can be moved into xpcom/glue.
Keywords: topembedtopembed+
i copied the xpcom/base files as requested in comment #18 but 
the files listed in xpcom/components from comment 19 do not exist.
dawn hooked us up.  chris, are you up for some build foo magic?
my fault...  s/nsGenericModule/nsGenericFactory
alec, rick, I am thinking about moving nsISupportUtils into the glue lib, but it 
does call new/delete.  Shouldn't it be using nsIMemory?

http://lxr.mozilla.org/seamonkey/source/xpcom/base/nsISupportsUtils.h#78
NS_NEWXPCOM(...) and NS_DELETEXPCOM(...) are meant to be used when 
creating/destroying c++ instances.  So, they can't use nsIMemory unless we add 
in the magic of calling the constructor or destructor too...

is new always new?
well, it's never old :-)
Comment on attachment 74835 [details] [diff] [review]
Build repo-copied files in xpcom/glue instead of xpcom/base & xpcom/components

a=asa (on behalf of drivers) for checkin to the 1.0 trunk
Attachment #74835 - Flags: approval+
Attachment #74835 - Attachment is obsolete: true
Comment on attachment 74835 [details] [diff] [review]
Build repo-copied files in xpcom/glue instead of xpcom/base & xpcom/components

Patch has been checked in & the original files have been cvs removed.
Marking this fix.  Any other files that we think about adding to the glue
library can be treated as seperate bugs.

Chris, thanks for your help.
x
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: