58 Commits

Author SHA1 Message Date
scc%netscape.com
ae0737cdba Fix specialized |CallQueryInterface| as per review by travis ... r=travis.
git-svn-id: svn://10.0.0.236/trunk@55669 18797224-902f-48f8-a5cc-f745e15eee43
1999-12-08 01:44:06 +00:00
scc%netscape.com
d82bf53dc0 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
git-svn-id: svn://10.0.0.236/trunk@55581 18797224-902f-48f8-a5cc-f745e15eee43
1999-12-07 14:09:29 +00:00
scc%netscape.com
de82a95c8c 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
git-svn-id: svn://10.0.0.236/trunk@54061 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-20 08:19:24 +00:00
scc%netscape.com
1efff4fab2 missed two T-->nsISupports instances, which primary platforms didn't catch, since they weren't instantiated
git-svn-id: svn://10.0.0.236/trunk@52943 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-08 12:25:11 +00:00
scc%netscape.com
95b2d5acdc 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}
git-svn-id: svn://10.0.0.236/trunk@52942 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-08 11:43:11 +00:00
dmose%mozilla.org
0efb7c174c updated xPL license boilerplate to v1.1, a=chofmann@netscape.com,r=endico@mozilla.org
git-svn-id: svn://10.0.0.236/trunk@52910 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 03:43:54 +00:00
dougt%netscape.com
fced92a57e backing out changes. looks like this stuff is untested in a full build.
git-svn-id: svn://10.0.0.236/trunk@52839 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 03:31:04 +00:00
cls%seawood.org
dc0901d830 Fix for the template variable change from <T> to <nsISupports>. r=dougt
git-svn-id: svn://10.0.0.236/trunk@52838 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 03:11:03 +00:00
dougt%netscape.com
d73bc37e66 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.


git-svn-id: svn://10.0.0.236/trunk@52835 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-05 02:18:46 +00:00
dveditz%netscape.com
3330477d88 shutting up copious warnings using /W4 on MSVC
git-svn-id: svn://10.0.0.236/trunk@52700 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-03 07:39:19 +00:00
scc%netscape.com
65b7cd0c03 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)
git-svn-id: svn://10.0.0.236/trunk@52346 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-31 00:35:48 +00:00
scc%netscape.com
998f4973d5 some small documentation changes, plus removed a function that was otherwise unused, and was confusing Solaris.
git-svn-id: svn://10.0.0.236/trunk@44667 18797224-902f-48f8-a5cc-f745e15eee43
1999-08-26 10:45:50 +00:00
scc%netscape.com
8850ce2142 fixed tabs
git-svn-id: svn://10.0.0.236/trunk@44138 18797224-902f-48f8-a5cc-f745e15eee43
1999-08-23 10:07:16 +00:00
scc%netscape.com
c108d9dde2 renamed to QueryReferent, do_QueryReferent, etc.
git-svn-id: svn://10.0.0.236/trunk@43314 18797224-902f-48f8-a5cc-f745e15eee43
1999-08-13 23:00:58 +00:00
scc%netscape.com
8a2956c416 experiment: I don't think it like the forward declaration
git-svn-id: svn://10.0.0.236/trunk@41968 18797224-902f-48f8-a5cc-f745e15eee43
1999-08-03 10:44:12 +00:00
scc%netscape.com
c796513d70 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|.
git-svn-id: svn://10.0.0.236/trunk@41965 18797224-902f-48f8-a5cc-f745e15eee43
1999-08-03 08:15:31 +00:00
scc%netscape.com
ce7de850a7 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.
git-svn-id: svn://10.0.0.236/trunk@41964 18797224-902f-48f8-a5cc-f745e15eee43
1999-08-03 08:10:08 +00:00
scc%netscape.com
c17c627e25 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).
git-svn-id: svn://10.0.0.236/trunk@41963 18797224-902f-48f8-a5cc-f745e15eee43
1999-08-03 07:44:53 +00:00
scc%netscape.com
2e57a4c5d6 Added |do_QueryReference| for initializing/assigning from |nsWeakPtr|s. Also some fixes.
git-svn-id: svn://10.0.0.236/trunk@41960 18797224-902f-48f8-a5cc-f745e15eee43
1999-08-03 07:21:39 +00:00
scc%netscape.com
0f698b683b 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.
git-svn-id: svn://10.0.0.236/trunk@40696 18797224-902f-48f8-a5cc-f745e15eee43
1999-07-22 21:09:49 +00:00
scc%netscape.com
547fe93c5a 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.
git-svn-id: svn://10.0.0.236/trunk@40688 18797224-902f-48f8-a5cc-f745e15eee43
1999-07-22 20:03:42 +00:00
scc%netscape.com
10c019611e 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.


git-svn-id: svn://10.0.0.236/trunk@39508 18797224-902f-48f8-a5cc-f745e15eee43
1999-07-15 03:59:09 +00:00
jband%netscape.com
09ad481b2b quick fix for bug 9250 - assert on startup
git-svn-id: svn://10.0.0.236/trunk@37520 18797224-902f-48f8-a5cc-f745e15eee43
1999-06-30 07:13:26 +00:00
shaver%netscape.com
364aea910c partial backout of scc's nsCOMPtr, attempting to revive Win32 build
git-svn-id: svn://10.0.0.236/trunk@37486 18797224-902f-48f8-a5cc-f745e15eee43
1999-06-29 22:33:18 +00:00
scc%netscape.com
62fb8f7c1f 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
git-svn-id: svn://10.0.0.236/trunk@37468 18797224-902f-48f8-a5cc-f745e15eee43
1999-06-29 21:09:59 +00:00
scc%netscape.com
3b2708bb1d fixed for VMS
git-svn-id: svn://10.0.0.236/trunk@33573 18797224-902f-48f8-a5cc-f745e15eee43
1999-06-03 20:36:53 +00:00
scc%netscape.com
fb55bb044f replaced tabs with spaces as per our standards
git-svn-id: svn://10.0.0.236/trunk@33390 18797224-902f-48f8-a5cc-f745e15eee43
1999-06-02 01:59:28 +00:00
scc%netscape.com
7c2cb084f3 added comparisons that will allow |nsnull != myPtr| et al
git-svn-id: svn://10.0.0.236/trunk@33385 18797224-902f-48f8-a5cc-f745e15eee43
1999-06-02 01:29:55 +00:00
scc%netscape.com
75ac724111 Fixup CallQueryInterface
git-svn-id: svn://10.0.0.236/trunk@31239 18797224-902f-48f8-a5cc-f745e15eee43
1999-05-12 04:50:08 +00:00
scc%netscape.com
78eb0e9f7f temporarily commented out CallQueryInterface for UNIX, added NS_EXPORT for Windows
git-svn-id: svn://10.0.0.236/trunk@30978 18797224-902f-48f8-a5cc-f745e15eee43
1999-05-10 21:43:29 +00:00
scc%netscape.com
9135e5202b conditionally factored destructor
git-svn-id: svn://10.0.0.236/trunk@30950 18797224-902f-48f8-a5cc-f745e15eee43
1999-05-10 20:48:43 +00:00
scc%netscape.com
2532453e8b sense of HAVE_CPP_BOOL was backwards, fixed it (thanks, Jim Dunn)
git-svn-id: svn://10.0.0.236/trunk@30442 18797224-902f-48f8-a5cc-f745e15eee43
1999-05-05 23:36:38 +00:00
scc%netscape.com
b85e1a74ed -----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-----


git-svn-id: svn://10.0.0.236/trunk@30401 18797224-902f-48f8-a5cc-f745e15eee43
1999-05-05 10:37:05 +00:00
scc%netscape.com
c3c1b1ce2b change |CallQueryInterface| to handle situations where |nsISupports| is ambiguous.
git-svn-id: svn://10.0.0.236/trunk@30105 18797224-902f-48f8-a5cc-f745e15eee43
1999-05-04 12:40:52 +00:00
scc%netscape.com
c2578a9d5f added |null_nsCOMPtr()|, |CallQueryInterface()|, fixed comments; added |const| in several appropriate places
git-svn-id: svn://10.0.0.236/trunk@30099 18797224-902f-48f8-a5cc-f745e15eee43
1999-05-04 09:37:35 +00:00
scc%netscape.com
ba245bf505 inlining the work of |StartAssigment| reduces |nsCOMPtr| overhead on windows.
git-svn-id: svn://10.0.0.236/trunk@24870 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-23 20:35:49 +00:00
scc%netscape.com
817f56596f rename |IID()| --> |GetIID()|
git-svn-id: svn://10.0.0.236/trunk@22744 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-03 19:48:57 +00:00
scc%netscape.com
e70b8e958a backed out depency on nscore.h
git-svn-id: svn://10.0.0.236/trunk@22631 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 23:52:38 +00:00
scc%netscape.com
ce584e3c02 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.
git-svn-id: svn://10.0.0.236/trunk@22620 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-02 23:08:54 +00:00
mcafee%netscape.com
4780230a1d Adding comparisons to autoconf results.
git-svn-id: svn://10.0.0.236/trunk@22431 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 10:13:18 +00:00
ramiro%netscape.com
026fef7a70 AIX portability fixes. (Waqar Malik <waqar@netscape.com>)
git-svn-id: svn://10.0.0.236/trunk@22426 18797224-902f-48f8-a5cc-f745e15eee43
1999-03-01 06:29:14 +00:00
scc%netscape.com
6cb22ba536 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
git-svn-id: svn://10.0.0.236/trunk@22250 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 23:43:40 +00:00
scc%netscape.com
99bd38652f 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)
git-svn-id: svn://10.0.0.236/trunk@22201 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 19:50:46 +00:00
alecf%netscape.com
5840b03d44 fix AIX bustage
git-svn-id: svn://10.0.0.236/trunk@22177 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-26 18:58:08 +00:00
alecf%netscape.com
4b3e627852 fix HPUX bustage - HP's compiler can't do "using" or static casts
git-svn-id: svn://10.0.0.236/trunk@21923 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-25 17:47:54 +00:00
mcafee%netscape.com
fab9b8fd0d Adding support for Solaris native compiler. a=scc
git-svn-id: svn://10.0.0.236/trunk@21208 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-18 22:34:15 +00:00
scc%netscape.com
4e937fc0aa updated to new interface for nsCOMPtr
git-svn-id: svn://10.0.0.236/trunk@20847 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-17 01:58:25 +00:00
scc%netscape.com
218ef805b6 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|.
git-svn-id: svn://10.0.0.236/trunk@20328 18797224-902f-48f8-a5cc-f745e15eee43
1999-02-11 01:34:07 +00:00
scc%netscape.com
f2a42cc021 Made the constructor explicit again (see comment) to stop people from breaking the Linux builds.
git-svn-id: svn://10.0.0.236/trunk@18235 18797224-902f-48f8-a5cc-f745e15eee43
1999-01-22 01:17:48 +00:00
scc%netscape.com
7112370451 OK. We were wrong about the SOLARIS case. Sorry.
git-svn-id: svn://10.0.0.236/trunk@17964 18797224-902f-48f8-a5cc-f745e15eee43
1999-01-18 20:32:41 +00:00