Hi,
I am new to xpcom. I have two mozilla installation environments on which only one of my mozilla executables work. The other one crashes. When I follow the function call chain I cannot go any further than the call:
mStreamListener->OnDataAvailable(request, NULL, NS_STATIC_CAST(nsIInputStream *, this), mOffset, aLen);
where, the declarations are:
nsCOMPtr<nsIStreamListener> mStreamListener; nsCOMPtr<nsIRequest> request;
because I don't know what this call does. How can I follow the execution flow _within_ this call? Can someone clearly explain what it does? Where does the execution flow go from here?
Its important because when I get a stack trace for the crashing executable, I find out that neither of the function calls on the stack during crash have been called from the working executable. So I need to know what the working one does within this function call that the crashing one doesn't do.
Many thanks for your help, Bahadir
my guess is that mStreamListener is null and that OnDataAvailable is not a static member of that class, thus being a reference from the "non initialized" pointer to that function, which does not exist...
Could also be a mis-stored pointer for mStreamListener which really is not of the type you think it is there.
Otherwise if it crashed inside there it would actually be inside.
Unless nsIInputStream cannot static-cast to "this" (which I dont recall if that can crash you).
note that just doing nsCOMPtr<nsIStreamListener> mStreamListener; does not initialize the class, just declares it as I understand in my dismal actual understand of nsCOMPtr's.
~Justin Wood (Callek on moznet IRC) _______________________________________________ Mozilla-xpcom mailing list [email protected] http://mail.mozilla.org/listinfo/mozilla-xpcom
