Identify and Move required static classes into glue lib

RESOLVED FIXED in mozilla1.0



16 years ago
16 years ago


(Reporter: dougt, Assigned: dougt)



Windows 2000

Firefox Tracking Flags

(Not tracked)



(2 obsolete attachments)



16 years ago


16 years ago
Target Milestone: --- → mozilla1.0

Comment 1

16 years ago
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 *)
nsCString::nsCString(class nsCString const &)
nsCString::nsCString(char const *)
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 *)
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 
nsCRT (or question it is being used)
nsDebug (or question it is being used)
nsTraceRefcnt (or question it is being used)

Comment 2

16 years ago
Actually, I question also why nsSupportsWeakReference is being used too.  This
class does nothing really special.  Why cant embedders copy this functionality?

Comment 3

16 years ago
alec and I spoke a bit about this.  we agreed that nsDebug and nsWeakReference
should be made part of the glue library.
Created attachment 68478 [details] [diff] [review]
Move nsDebug.cpp & nsWeakReference.cpp into xpcomglue

xpcom/base/{nsDebug,nsWeakReference}.* have been copied to xpcom/glue (thanks

Comment 5

16 years ago
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+

Comment 6

16 years ago
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.

Comment 8

16 years ago
Great news.

Comment 9

16 years ago
alec, jband, can one of you sr= this patch?


16 years ago
Summary: Identify and Move required status classes into glue lib → Identify and Move required static classes into glue lib

Comment 10

16 years ago
Comment on attachment 68478 [details] [diff] [review]
Move nsDebug.cpp & nsWeakReference.cpp into xpcomglue

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


16 years ago
Depends on: 108233

Comment 12

16 years ago
probably should be moved into glue:



Comment 13

16 years ago
alec, rick, objections on moving the above headers to glue?

Comment 14

16 years ago
Can't think of any reason why not...

Comment 15

16 years ago
Chris, can you cvs move these files to xpcom/glue?


16 years ago
Keywords: topembed
Nope, I don't have direct access to the cvs repo.  These requests should really
go straight to dawn & leaf.

Comment 17

16 years ago
Move which files where? give complete path names. When i looked at this
earlier I didn't find the files you listed.

Comment 18

16 years ago




Comment 19

16 years ago
Three more additions (since 108233 landed)


can be moved into xpcom/glue.


16 years ago
Keywords: topembed → topembed+

Comment 20

16 years ago
i copied the xpcom/base files as requested in comment #18 but 
the files listed in xpcom/components from comment 19 do not exist.

Comment 21

16 years ago
dawn hooked us up.  chris, are you up for some build foo magic?

Comment 22

16 years ago
my fault...  s/nsGenericModule/nsGenericFactory

Comment 23

16 years ago
alec, rick, I am thinking about moving nsISupportUtils into the glue lib, but it 
does call new/delete.  Shouldn't it be using nsIMemory?

Comment 24

16 years ago
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...


Comment 25

16 years ago
is new always new?

Comment 26

16 years ago
well, it's never old :-)
Created attachment 74835 [details] [diff] [review]
Build repo-copied files in xpcom/glue instead of xpcom/base & xpcom/components

Comment 28

16 years ago
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.

Comment 30

16 years ago
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.

Comment 31

16 years ago
Last Resolved: 16 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.