Thanks for the help. After I started fresh and rebuilt mozilla with
--disable-debug and a few other options turned on, all my problems were
basically solved, plus my embedded app loads several seconds faster.
Not rebuilding the entire app (mainly because I didn't want to wait an
hour for each build) was indeed the problem. Thanks again!
Scott Collins wrote:
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> This problem is covered specifically in the nsCOMPtr user's guide.
>
> See
>
> <http://www.mozilla.org/projects/xpcom/nsCOMPtr.html
> #NSCAP_FEATURE_DEBUG_PTR_TYPES>
>
> Essentially, the entire app must be compiled with the same setting of
> the build flag |NSCAP_FEATURE_DEBUG_PTR_TYPES|. By _default_ this is
> controlled by the debug flags. So, unless you take specific action,
> the bad behavior you have experienced is the typical result of mixing
> debug and non-debug pieces together in your build. In particular, a
> debug build of the XPCOM library mixed with non-debug builds of any
> other components will cause link problems. You can have a
> link-compatible debug build of XPCOM by defining
> |NSCAP_DISABLE_DEBUG_PTR_TYPES|.
>
> There have been bug reports against this in the past, and there are
> lengthy explanations in some of them. I would cite one but bugzilla
> is currently backing up so I'll have to search later.
>
> Yes, the thing you are doing now is a hack. You've made a function
> with the right name available, but it's unrelated to the actual
> inheritance of |nsCOMPtr| in the place where you are wanting it. As
> it turns out ... everything is the right shape, and your app works,
> but that's really just a coincidence ;-) The real answer is to fix
> your flags so |NSCAP_FEATURE_DEBUG_PTR_TYPES| is consistent.
>
> Hope this helps,
> ______________________________________________________________________
> Scott Collins <http://ScottCollins.net/>
>
> -----BEGIN PGP SIGNATURE-----
> Version: PGP Personal Privacy 6.5.2
> Comment: get my key at <http://ScottCollins.net/#key>
>
> iQA/AwUBOpOb2vGmojMuVn+fEQJDEQCgg1BuUtBROOSD3yF0tQLYTo6VDKYAoLz5
> GftjenY22qehkx1pFbQVp9OQ
> =NkeP
> -----END PGP SIGNATURE-----