scc%mozilla.org
689f6a5c62
bug #75504 ; sr=jband. making it impossible to misuse |getter_AddRefs| in the way jband discovered
2001-05-03 10:15:09 +00:00
brendan%mozilla.org
1be564909a
Checkin shaver's patch to allow debug Mozilla builds to dynamicly link with XPCOM-based, nsCOMPtr-using optimized plugins (77112, r=brendan, sr=scc, a=chofmann).
2001-04-24 21:13:15 +00:00
dbaron%fas.harvard.edu
093e897c1b
Fix bustage on VC++ and gcc 2.7.2.x caused by incorrect overload resolution.
2001-04-07 17:25:16 +00:00
dbaron%fas.harvard.edu
244ee9e63a
Replace my previous incorrect fix for |operator==| ambiguities with a correct one: provide additional |operator==| and |operator!=| for comparing nsCOMPtrs to raw pointers that take a non-const raw pointer argument so that builtin operators will not have a better conversion for one argument. b=65664 r=waterson@netscape.com sr=scc@mozilla.org
2001-04-07 15:29:39 +00:00
dbaron%fas.harvard.edu
8d34652545
Make |nsCOMPtr<T>::operator&| private so that it is not used by clients. Legitimate users should use |address_of| instead. b=59414 r=disttsc@bart.nl sr=scc@mozilla.org
...
Fix ambiguities relating to the various forms of |operator==| defined for nsCOMPtrs by avoiding |const| for parameters for compilers where it (incorrectly) confuses overload resolution. r=scc@mozilla.org sr=brendan@mozilla.org b=65664
2001-02-04 19:57:29 +00:00
dbaron%fas.harvard.edu
198833687a
Attempt to fix |address_of| bustage on IRIX. r=scc@mozilla.org b=59414
2000-12-10 03:13:53 +00:00
dbaron%fas.harvard.edu
7f9852c286
Work in progress for bug 59414. Prepare to make |nsCOMPtr|'s |operator&| private to prevent many cases of accidental usage, and provide |address_of| for clients who really want a pointer to an nsCOMPtr. r=scc@mozilla.org sr=waterson@netcape.com
2000-12-09 04:45:43 +00:00
cls%seawood.org
847d576a56
Workaround for long-standing AIX bustage
2000-07-28 08:11:51 +00:00
mkaply%us.ibm.com
b3e435e1de
# 37239
...
r = valeski, a = brendan
OS/2 bring-up - Yes I know this is ugly.
We are getting a linker error on this delete.
We want to get our builds up by any means necessary,
so I need to comment this out for us for now.
2000-06-14 00:26:52 +00:00
scc%mozilla.org
ab3cce39a1
further logging fixes; removed |explicit| to "nscore.h"; removed old-style logging definitions for |NSCAP_ADDREF| and |NSCAP_RELEASE|, define them externally if you want them (the new comment says how); fixed some comments... I'll be moving to doc-style comments soon to better support doxygen
2000-06-10 09:58:13 +00:00
scc%mozilla.org
42a6c98a0f
further fix for the defined case. r=dbaron
2000-06-08 05:08:14 +00:00
scc%mozilla.org
129f2bc511
Improved logging facilities on |nsCOMPtr| in cooperation with dbaron, for his new logging tools. r=dbaron
2000-06-08 04:52:39 +00:00
waterson%netscape.com
7ea63b347d
Canonify HAVE_CPP_ACCESS_CHANGING_USING and HAVE_CPP_AMBIGUITY_RESOLVING_USING.
2000-06-05 00:46:37 +00:00
scc%mozilla.org
a1285d663d
Bug #39824 . Checking in patch from dp. This patch fixes exports on some |nsCOMPtr_helper| classes so we can link appropriately. r=scc.
2000-05-20 18:31:45 +00:00
waterson%netscape.com
ec50330ca2
Remove #ifdef that is unnecessary when STL headers are not included.
2000-05-14 00:05:24 +00:00
waterson%netscape.com
6d1bd93d73
Add necessary code to get NEW_STRING_APIS to compile properly on gcc-2.7.2.3. r=scc
2000-05-13 00:05:29 +00:00
scc%netscape.com
d9a28087cd
changed some comments
2000-05-12 05:20:21 +00:00
waterson%netscape.com
e2976c60e9
Beef up autoconf tests to differentiate 'ambiguity resolving' and 'access changing' support of the 'using' keyword. Add a test to see if the 'std' namespace is used on the platform. r=scc
2000-03-28 07:01:37 +00:00
scc%netscape.com
06d7fc7dff
slight renaming and fixed a template signature for AIX
2000-03-22 22:52:17 +00:00
scc%netscape.com
1099be693b
Added the Bill Law trick to make |nsCOMPtr| break the build for everybody where it use to break it only for Solaris and a few others (the `tainting' problem). Added a haiku. r=danm
2000-03-18 05:17:46 +00:00
scc%netscape.com
ba8a0f115a
Renamed an internal typename. Was |nsDontAddRef<T>|, now is |already_AddRefed<T>| in hopes that it can be used outside of "nsCOMPtr.h". Moved |HAVE_CPP_...| symbols out of here and into "nscore.h" because more files need them. r=pinkerton
2000-03-17 23:08:18 +00:00
scc%netscape.com
5b719b7bc5
wrapped |nsCOMPtr| vs. raw pointer comparisons in a |#ifndef| for |NSCAP_NSCOMPTR_TO_RAW_COMPARISONS_ARE_AMBIGUOUS| which is currently not defined. When an autoconf test defines this symbol, these operators will go away, and Linux will never be bit by the |nsCOMPtr| can't compare to a raw pointer error. Currently, there is no effect. r={mjudge,rginda}
2000-02-12 23:30:52 +00:00
scc%netscape.com
2471a0d722
enable the |ASSERT_NO_QUERY_NEEDED| tests for the |getter_AddRefs()| case as well. bug #26420 , r=dougt
2000-02-06 21:17:51 +00:00
scc%netscape.com
d220bcf442
Fixed tabs, some comments, etc. Made |do_QueryInterface()| not participate in the |...TEST_DONTQUERY_CASES| test to help us debug bug #25327 . r=pinkerton
2000-01-29 22:29:08 +00:00
scc%netscape.com
fc8ef76eff
macros and defs to removed conditional definition of |GetIID()| within |nsISupports|. r=beard, (waterson?), bug=10477
2000-01-13 05:48:47 +00:00
scc%netscape.com
7f1ef3261d
Fix specialized |CallQueryInterface| as per review by travis ... r=travis.
1999-12-08 01:44:06 +00:00
scc%netscape.com
ccc2279daa
Adding an alternate version of |CallQueryInterface| as an experiment on behalf of travis. This function is not yet called, and should not effect the build or the runtime. r=hyatt
1999-12-07 14:09:29 +00:00
scc%netscape.com
290a51fcd4
fixed an annoying, but rare, bug where an |nsCOMPtr| in an ownership ring could |Release()| twice. See the comment in the code for details. r=waterson
1999-11-20 08:19:24 +00:00
scc%netscape.com
913a64bdee
missed two T-->nsISupports instances, which primary platforms didn't catch, since they weren't instantiated
1999-11-08 12:25:11 +00:00
scc%netscape.com
50bb3ffae5
Specialize |nsCOMPtr| for |nsISupports| (i.e., |nsCOMPtr<nsISupports>|). The specialization _does_not_ have the invariant that |nsCOMPtr<T>| has of always pointing to the COM-correct interface. An |nsCOMPtr<nsISupports>| essentially means "a pointer to _any_ [XP]COM interface". This change allows dougt to fix his M11 bug. a=chofmann, r={danm, hyatt}
1999-11-08 11:43:11 +00:00
dmose%mozilla.org
8535dda53e
updated xPL license boilerplate to v1.1, a=chofmann@netscape.com,r=endico@mozilla.org
1999-11-06 03:43:54 +00:00
dougt%netscape.com
e941d5a661
backing out changes. looks like this stuff is untested in a full build.
1999-11-05 03:31:04 +00:00
cls%seawood.org
fa6602724f
Fix for the template variable change from <T> to <nsISupports>. r=dougt
1999-11-05 03:11:03 +00:00
dougt%netscape.com
777d0f9159
Fix for 17842. Make nsCOMPtr<nsISupports> should not be weak typed. scc's
...
this change to me and since he is on vacation until monday and I need this
for an M11 bug, I am checking it in. I am hoping it is the right
thing to do.
a=brendan.
1999-11-05 02:18:46 +00:00
dveditz%netscape.com
2571930b5e
shutting up copious warnings using /W4 on MSVC
1999-11-03 07:39:19 +00:00
scc%netscape.com
8f4e7ad8e4
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
cffa6a515e
some small documentation changes, plus removed a function that was otherwise unused, and was confusing Solaris.
1999-08-26 10:45:50 +00:00
scc%netscape.com
06e8699a24
fixed tabs
1999-08-23 10:07:16 +00:00
scc%netscape.com
944678da9d
renamed to QueryReferent, do_QueryReferent, etc.
1999-08-13 23:00:58 +00:00
scc%netscape.com
1f0ab10430
experiment: I don't think it like the forward declaration
1999-08-03 10:44:12 +00:00
scc%netscape.com
e4d1a4321f
Moved the typedef to its own file: "nsWeakPtr.h". This avoids the circular includes problem and lets people #include just "nsWeakPtr.h" when they want an |nsWeakPtr|.
1999-08-03 08:15:31 +00:00
scc%netscape.com
b5ee2a318a
OK, now only nsCOMPtr.h includes nsIWeakReference, and not the other way around. I'll probably have to make a header file just to contain the one-line typedef I moved.
1999-08-03 08:10:08 +00:00
scc%netscape.com
eaeff321cf
Well, not everybody could do it just from the forward declared class. Yes, nsCOMPtr.h and nsIWeakReference.h include eachother, but it works anyway (they test for already being included).
1999-08-03 07:44:53 +00:00
scc%netscape.com
dfa83459be
Added |do_QueryReference| for initializing/assigning from |nsWeakPtr|s. Also some fixes.
1999-08-03 07:21:39 +00:00
scc%netscape.com
73a836eeaa
Allow explicit disabling of |...TEST_DONTQUERY_CASES| and |...DEBUG_PTR_TYPES| on the command-line for problematic compilers like QNX et al. This allows me to fix the QNX build, and provide an answer to some people compiling with the Sun Workshop.
1999-07-22 21:09:49 +00:00
scc%netscape.com
4adb195c6c
switching back to the stricter declaration of |nsDerivedSafe<T>::operator=()|. Since I removed |nsISupportsArray::operator=()|, all should be well. I left the old declaration in but commented out, just in case. I hope I don't have to conditionalize this wth an autoconf test. I've built this (with the help of several other people including mjudge, waqar, slamm, et al) on as many other platforms as I could. This declaration is intended to stop people from declaring an |operator=()| in their (XP)COM interface classes.
1999-07-22 20:03:42 +00:00
scc%netscape.com
9d49cb3127
new feature lets you `see past' |nsISupports| in |nsCOMPtr|s. Now in the debugger (in debug versions only) you will see the actual type of the object. This is enabled by defining the preprocessor symbol |NSCAP_FEATURE_DEBUG_PTR_TYPES|. It cannot be turned on in non-debug builds. It is currently on in debug builds by default. It may become a feature that has to be enabled with a build command line switch.
NSCAP_FEATURE_ALLOW_RAW_POINTERS is now always the case and no longer optional; NSCAP_FEATURE_ALLOW_COMPARISONS is now always the case and no longer optional; cleaned up the previous definition and invocations of the |Assert_NoQueryNeeded| test.
1999-07-15 03:59:09 +00:00
jband%netscape.com
cc711499f4
quick fix for bug 9250 - assert on startup
1999-06-30 07:13:26 +00:00
shaver%netscape.com
f8f7778a8e
partial backout of scc's nsCOMPtr, attempting to revive Win32 build
1999-06-29 22:33:18 +00:00
scc%netscape.com
d10f87cd9d
added logic to test whether QueryInterface was actually required when it is ommitted, |nsISupports::GetIID()| --> |nsCOMTypeInfo<nsISupports>::GetIID()|, changed the scheme by which we compare with zero to a more robust mechanism, modified specialized |CallQueryInterface| to use the global version
1999-06-29 21:09:59 +00:00
scc%netscape.com
0c87834eef
fixed for VMS
1999-06-03 20:36:53 +00:00
scc%netscape.com
16cc6edf13
replaced tabs with spaces as per our standards
1999-06-02 01:59:28 +00:00
scc%netscape.com
5c2933b1c2
added comparisons that will allow |nsnull != myPtr| et al
1999-06-02 01:29:55 +00:00
scc%netscape.com
5f7f07adc9
Fixup CallQueryInterface
1999-05-12 04:50:08 +00:00
scc%netscape.com
4fb41627b5
temporarily commented out CallQueryInterface for UNIX, added NS_EXPORT for Windows
1999-05-10 21:43:29 +00:00
scc%netscape.com
64fea0e7f5
conditionally factored destructor
1999-05-10 20:48:43 +00:00
scc%netscape.com
4c26313504
sense of HAVE_CPP_BOOL was backwards, fixed it (thanks, Jim Dunn)
1999-05-05 23:36:38 +00:00
scc%netscape.com
6c7fa04eb5
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Wow! Re-enabled initialization/assignment from raw COM interface pointers, only this time it means the same as |dont_QueryInterface|. Which is what people want and expect. Re-enabled comparisons between |nsCOMPtr|s and raw COM interface pointers; and it means what people expect: are these two 4-byte values equal/not-equal. Added a function for comparing two pointers (either can be raw or nsCOMPtr) called |SameCOMIdentity|, which provides the other kind of comparison.
No current functionality has changed. Everything you're doing now is still legal and valid. These changes only bring some additional options.
-----BEGIN PGP SIGNATURE-----
Version: PGP Personal Privacy 6.0.2
Comment: get my key at < http://www.meer.net/ScottCollins/#key >
iQA/AwUBNzAeufGmojMuVn+fEQInWgCfUVK/7xfd/pdhAmyIe4HhynKsuucAn20t
MRtmNY4e2MAdwClvhR65a5Yv
=elb3
-----END PGP SIGNATURE-----
1999-05-05 10:37:05 +00:00
scc%netscape.com
314436f96d
change |CallQueryInterface| to handle situations where |nsISupports| is ambiguous.
1999-05-04 12:40:52 +00:00
scc%netscape.com
f5a32343a4
added |null_nsCOMPtr()|, |CallQueryInterface()|, fixed comments; added |const| in several appropriate places
1999-05-04 09:37:35 +00:00
scc%netscape.com
8eb511fa4b
inlining the work of |StartAssigment| reduces |nsCOMPtr| overhead on windows.
1999-03-23 20:35:49 +00:00
scc%netscape.com
31ff626ae9
rename |IID()| --> |GetIID()|
1999-03-03 19:48:57 +00:00
scc%netscape.com
9d21ae3942
backed out depency on nscore.h
1999-03-02 23:52:38 +00:00
scc%netscape.com
8058bf1464
now rely on "nscore.h" for NS_REINTERPRET_CAST instead of defining my own. now relying on autoconf system for all unixes. Some tests may need to be fixed.
1999-03-02 23:08:54 +00:00
mcafee%netscape.com
49754e4257
Adding comparisons to autoconf results.
1999-03-01 10:13:18 +00:00
ramiro%netscape.com
0875a55f81
AIX portability fixes. (Waqar Malik <waqar@netscape.com>)
1999-03-01 06:29:14 +00:00
scc%netscape.com
312b8d76d7
for VC++5.0, no member using declarations (to prevent internal compiler error); to make this compile fixed type of AddRef and Release in nsDerivedSafe
1999-02-26 23:43:40 +00:00
scc%netscape.com
0238953fe3
deprecated |dont_AddRef|, added a new form of |getter_AddRefs| to take its place. Removed all nothing of bool from the headers (should help gcc)
1999-02-26 19:50:46 +00:00
alecf%netscape.com
e7831871be
fix AIX bustage
1999-02-26 18:58:08 +00:00
alecf%netscape.com
643dbd9b6d
fix HPUX bustage - HP's compiler can't do "using" or static casts
1999-02-25 17:47:54 +00:00
mcafee%netscape.com
99b1533740
Adding support for Solaris native compiler. a=scc
1999-02-18 22:34:15 +00:00
scc%netscape.com
d4ae494464
updated to new interface for nsCOMPtr
1999-02-17 01:58:25 +00:00
scc%netscape.com
f020767dfc
Added |nsresult nsCOMPtr::assignment_error() const;| which returns the error, if any, from the most recent operation (constructor or assignment operator) that implicitly calls |QueryInterface|. This did not increase the size of an |nsCOMPtr|.
1999-02-11 01:34:07 +00:00
scc%netscape.com
edaa2f7db9
Made the constructor explicit again (see comment) to stop people from breaking the Linux builds.
1999-01-22 01:17:48 +00:00
scc%netscape.com
0c7a4ca128
OK. We were wrong about the SOLARIS case. Sorry.
1999-01-18 20:32:41 +00:00
scc%netscape.com
be87c1b10a
Added patch for bsdi from netscape.public.mozilla.patches; removed test for !SOLARIS as agreed with macafee.
1999-01-18 18:32:33 +00:00
scc%netscape.com
e52a11daa0
Now test pointer result _and_ error code on return from QueryInterface, as some implementations return garbage.
1999-01-16 02:37:22 +00:00
mjudge%netscape.com
c2935a0853
scc and I decided that the explicit keyword was not necessary for the constructor.
...
It never hurts you to make an nsCOMPtr. MJ
1999-01-15 18:57:31 +00:00
scc%netscape.com
a89c841519
defined NSCAP_NEED_UNUSED_VIRTUAL_IMPLEMENTATIONS for GNU 2.7 under linux. Fixed URL leading to the user manual. Noted that ramiro is working on getting all these special #defines handled by the configuration system instead.
1999-01-05 21:07:57 +00:00
scc%netscape.com
d5aa76aba6
added |dont_QueryInterface| facility, re-added the NS_ADDREF macros, though conditionally
1998-12-21 23:26:39 +00:00
scc%netscape.com
38897ed3d0
NSCAP_FEATURE_DONT_ADDREF is no longer optional, and the symbol has gone away. This facility turns out to be needed. Also catch the case when operator= is called on a dereferenced smart pointer. Fixed some documentation.
1998-12-18 03:45:44 +00:00
scc%netscape.com
e42b720fb2
enabled the dont_AddRef feature, for when functions return an already AddRefed result, e.g. |mSmartPtr = dont_AddRef(GetThing());|
1998-12-17 19:32:00 +00:00
scc%netscape.com
cbfe9f5b15
First Checked In.
1998-12-17 19:12:45 +00:00