From f556d1a6b5e21dbd6a18a49302b85d03f33afba1 Mon Sep 17 00:00:00 2001 From: "idk%eng.sun.com" Date: Wed, 13 Jun 2001 09:05:48 +0000 Subject: [PATCH] *not part of the build* fix for 15507 15510 (add on) git-svn-id: svn://10.0.0.236/trunk@97046 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/java/xpcom/xpcom/bcXPCOMProxy.cpp | 8 ++++++-- mozilla/java/xpcom/xpcom/bcXPCOMStub.cpp | 8 +++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/mozilla/java/xpcom/xpcom/bcXPCOMProxy.cpp b/mozilla/java/xpcom/xpcom/bcXPCOMProxy.cpp index 8f5fb38ba88..ff8391cd4b0 100644 --- a/mozilla/java/xpcom/xpcom/bcXPCOMProxy.cpp +++ b/mozilla/java/xpcom/xpcom/bcXPCOMProxy.cpp @@ -153,9 +153,13 @@ NS_IMETHODIMP bcXPCOMProxy::CallMethod(PRUint16 methodIndex, } NS_IF_RELEASE(eventQ); bcIUnMarshaler * unmarshaler = call->GetUnMarshaler(); - mt->UnMarshal(unmarshaler); + nsresult result; + unmarshaler->ReadSimple(&result, bc_T_U32); + if (NS_SUCCEEDED(result)) { + mt->UnMarshal(unmarshaler); + } delete call; delete marshaler; delete unmarshaler; delete mt; - return NS_OK; + return result; } nsrefcnt bcXPCOMProxy::AddRef(void) { diff --git a/mozilla/java/xpcom/xpcom/bcXPCOMStub.cpp b/mozilla/java/xpcom/xpcom/bcXPCOMStub.cpp index a483b02607d..4a2e5e5cf7e 100644 --- a/mozilla/java/xpcom/xpcom/bcXPCOMStub.cpp +++ b/mozilla/java/xpcom/xpcom/bcXPCOMStub.cpp @@ -111,10 +111,12 @@ void bcXPCOMStub::DispatchAndSaveThread(bcICall *call, nsIEventQueue *eventQueue stubsAndProxiesService->PushEventQueue(eventQueue); //nb return value; excepion handling PR_LOG(log, PR_LOG_DEBUG, ("--bcXPCOMStub::DispatchAndSaveThreade about to XPTC_InvokeByIndex\n")); - XPTC_InvokeByIndex(object, mid, paramCount, params); + nsresult result = XPTC_InvokeByIndex(object, mid, paramCount, params); PR_LOG(log, PR_LOG_DEBUG, ("--bcXPCOMStub::DispatchAndSaveThreade after XPTC_InvokeByIndex\n")); - if (mt != NULL) { //nb to do what about nsresult ? - bcIMarshaler * m = call->GetMarshaler(); + bcIMarshaler * m = call->GetMarshaler(); + m->WriteSimple(&result, bc_T_U32); + if (NS_SUCCEEDED(result) + && mt != NULL) { PR_LOG(log, PR_LOG_DEBUG, ("--bcXPCOMStub::DispatchAndSaveThreade about to mt->Marshal\n")); mt->Marshal(m); delete m;