Nathan Froyd
af69df0b21
Bug 1393885 - provide a faster path for do_GetWeakReference; r=erahm
...
NS_GetWeakReference, called from do_GetWeakReference, QI's its argument
to nsISupportsWeakReference to determine whether a weak reference can be
obtained. If NS_GetWeakReference is already receiving a
nsISupportsWeakReference pointer, or something than can be converted to
one, then we can skip the QI for a small performance win.
2017-09-05 15:39:40 -04:00
Nathan Froyd
bd0f2fccab
Bug 1393592 - manually de-virtualize nsIWeakReference::QueryReferent; r=ehsan
...
The virtual call to this method shows up in profiles, and therefore
would be nice to avoid if possible. We can do that by making
nsIWeakReference hold the weak reference itself and therefore
implementing a non-virtual QueryReferent method.
2017-08-25 13:48:29 -04:00
Masayuki Nakano
f337b95b60
Bug 1372829 - part2: mozilla::EditorBase should cache raw pointer of nsISelectionController and nsIDocument with nsWeakPtr r=froydnj,m_kato
...
mozilla::EditorBase stores nsISelectionController and nsIDocument with nsWeakPtr. However, nsWeakPtr requires QI to retrieve actual pointer and it makes some damage to the performance. If mozilla::WeakPter were available for them, it'd be great. However, it's not available with nsISelectionController nor nsIDocument because it's possible to implement SupportsWeakPtr only with their subclasses but the subclasses shouldn't be referred by editor. Therefore, this patch creates mozilla::CachedWeakPtr<class T> which stores both raw pointer (as cache) and nsWeakPtr and when its cache is requested, it checks if the object referred by nsWeakPtr is still alive.
Additionally, this patch hides the members from subclasses of EditorBase for reducing the maintenance cost.
MozReview-Commit-ID: FvtM7453Vv8
--HG--
extra : rebase_source : a524a8ea327c3993645fafa81db8aef65090f1e0
2017-06-20 00:55:00 +09:00
Nathan Froyd
8bbd081c88
Bug 1359415 - move threadsafety checks inside nsAutoOwningThread; r=erahm
...
This change moves most of the logic for the threadsafety check into
nsAutoOwningThread, rather than having part of the logic live in
nsAutoOwningThread and part of the logic live in nsDebug.h. Changing
this also forces us to clean up a couple of places that replicated the
logic that lived in nsDebug.h as well.
2017-04-26 11:41:32 -04:00
Benjamin Smedberg
d478e7c99f
Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj
...
MozReview-Commit-ID: ARS1aTugYjl
--HG--
rename : xpcom/glue/AutoRestore.h => xpcom/base/AutoRestore.h
rename : xpcom/glue/EnumeratedArrayCycleCollection.h => xpcom/base/EnumeratedArrayCycleCollection.h
rename : xpcom/glue/IntentionalCrash.h => xpcom/base/IntentionalCrash.h
rename : xpcom/glue/nsCOMPtr.cpp => xpcom/base/nsCOMPtr.cpp
rename : xpcom/glue/nsCOMPtr.h => xpcom/base/nsCOMPtr.h
rename : xpcom/glue/nsCRTGlue.cpp => xpcom/base/nsCRTGlue.cpp
rename : xpcom/glue/nsCRTGlue.h => xpcom/base/nsCRTGlue.h
rename : xpcom/glue/nsClassInfoImpl.cpp => xpcom/base/nsClassInfoImpl.cpp
rename : xpcom/glue/nsCycleCollectionNoteChild.h => xpcom/base/nsCycleCollectionNoteChild.h
rename : xpcom/glue/nsCycleCollectionNoteRootCallback.h => xpcom/base/nsCycleCollectionNoteRootCallback.h
rename : xpcom/glue/nsCycleCollectionParticipant.cpp => xpcom/base/nsCycleCollectionParticipant.cpp
rename : xpcom/glue/nsCycleCollectionParticipant.h => xpcom/base/nsCycleCollectionParticipant.h
rename : xpcom/glue/nsCycleCollectionTraversalCallback.h => xpcom/base/nsCycleCollectionTraversalCallback.h
rename : xpcom/glue/nsDebug.h => xpcom/base/nsDebug.h
rename : xpcom/glue/nsIClassInfoImpl.h => xpcom/base/nsIClassInfoImpl.h
rename : xpcom/glue/nsID.cpp => xpcom/base/nsID.cpp
rename : xpcom/glue/nsID.h => xpcom/base/nsID.h
rename : xpcom/glue/nsIInterfaceRequestorUtils.cpp => xpcom/base/nsIInterfaceRequestorUtils.cpp
rename : xpcom/glue/nsIInterfaceRequestorUtils.h => xpcom/base/nsIInterfaceRequestorUtils.h
rename : xpcom/glue/nsINIParser.cpp => xpcom/base/nsINIParser.cpp
rename : xpcom/glue/nsINIParser.h => xpcom/base/nsINIParser.h
rename : xpcom/glue/nsISupportsImpl.cpp => xpcom/base/nsISupportsImpl.cpp
rename : xpcom/glue/nsISupportsImpl.h => xpcom/base/nsISupportsImpl.h
rename : xpcom/glue/nsISupportsUtils.h => xpcom/base/nsISupportsUtils.h
rename : xpcom/glue/nsIWeakReferenceUtils.h => xpcom/base/nsIWeakReferenceUtils.h
rename : xpcom/glue/nsMemory.cpp => xpcom/base/nsMemory.cpp
rename : xpcom/glue/nsMemory.h => xpcom/base/nsMemory.h
rename : xpcom/glue/nsTWeakRef.h => xpcom/base/nsTWeakRef.h
rename : xpcom/glue/nsVersionComparator.cpp => xpcom/base/nsVersionComparator.cpp
rename : xpcom/glue/nsVersionComparator.h => xpcom/base/nsVersionComparator.h
rename : xpcom/glue/nsWeakReference.cpp => xpcom/base/nsWeakReference.cpp
rename : xpcom/glue/nsWeakReference.h => xpcom/base/nsWeakReference.h
extra : rebase_source : df11b181f383b70ffe5051716d63ed11b98be53b
extra : histedit_source : 6d0743fac0562e4676e44a52f0e85375fb4a44ff
2017-01-23 09:24:01 -05:00
seawood%netscape.com
afcf1ae54b
These files have been moved into xpcom/glue
...
Bug #120474 r=dougt
2002-02-08 07:22:47 +00:00
timeless%mac.com
060425ec59
Bugzilla Bug 110080 change !NS_SUCCEEDED(status) to NS_FAILED(status)
...
s/!NS_SUCCEEDED/NS_FAILED/g;s/!NS_FAILED/NS_SUCCEEDED/g;
r=dougt sr=hewitt
2001-11-19 06:45:00 +00:00
dougt%netscape.com
91b4b36d52
backing out changes to 104172. r=ccarlen@netscape.com
2001-10-23 03:50:24 +00:00
dougt%netscape.com
b5ba390898
Extraneous Symbol Removal. Patch by Jon Smirl jonsmirl@mediaone.net. r=dougt@netscape.com, sr=alecf@netscape.com. Bug 104172 , 104316 , 104420 , 104426 , 104461 , 104511 , 104527
2001-10-23 01:37:21 +00:00
scc%mozilla.org
a3e0838ab6
fix bustage
2001-03-09 01:38:36 +00:00
scc%mozilla.org
061a83670c
bug #68872 : r=jag, sr=waterson. provide |do_GetWeakReference|.
2001-03-09 00:40:11 +00:00
scc%mozilla.org
d2593e5546
fix wrong error return; bug #57981 r=waterson, sr=brendan
2000-10-27 21:46:20 +00:00
dp%netscape.com
edcdeb94a5
NS_GET_IID(). Thanks to patch from pp@ludasdesign.com r=dp@netscape.com
1999-11-30 23:36:32 +00:00
scc%netscape.com
e2e36b3c4a
don't ASSERT that it doesn't support weak references for NULL. r=pinkerton
1999-11-23 03:10:02 +00:00
scc%netscape.com
d34a60c8e2
clear out result in |do_QueryReferent| on error; assert in |NS_GetWeakReference| if the source object doesn't support weak references; also return NS_ERROR_NO_INTERFACE in release builds. r=pinkerton
1999-11-22 22:59:21 +00:00
scc%netscape.com
b2c12428df
changed the mechanism underlying |do_QueryInterface| to decouple |nsCOMPtr| from services, |nsIWeakReference|, etc. This change fixes bug #17364 , and paves the way for making |nsCOMPtr| cooperate with services. r=valeski (additional builds done by dmose and syd)
1999-10-31 00:35:48 +00:00
scc%netscape.com
68340a37ef
got rid of |NS_IMPL_ISUPPORTS|, where possible, in favor of |NS_IMPL_ISUPPORTS0| or ...1 according to the specific use; got rid of |NS_DEFINE_IID| where possible, or where it should have been |NS_DEFINE_CID|; fixed bad implementations of |QueryInterface|, where possible. Built, tested apprunner, reviewed the changes with hyatt (since he was around to look) before checking in
1999-08-23 10:14:16 +00:00
scc%netscape.com
0ea67f445d
added license, fixed tabs
1999-08-21 20:07:27 +00:00
scc%netscape.com
0921e3bfc2
renamed to QueryReferent, do_QueryReferent, etc.
1999-08-13 23:00:58 +00:00
danm%netscape.com
bd95ca26db
fix WeakReference exporting for Windows. a:chofmann r:scc.
1999-08-11 23:48:08 +00:00
scc%netscape.com
f311d065ca
well, now it needs to include nsCOMPtr, since the header doesn't anymore
1999-08-03 08:34:17 +00:00
scc%netscape.com
e16adcb40a
getting ready to build
1999-08-03 04:59:47 +00:00
scc%netscape.com
fbc8779752
First Checked In.
1999-08-03 03:41:27 +00:00