From e757f6a9b71e587ee7b6bcd0ffd798fc0889058e Mon Sep 17 00:00:00 2001 From: "jband%netscape.com" Date: Tue, 7 Sep 1999 01:48:13 +0000 Subject: [PATCH] fix that shaver needs for wrapped JS object doing QI semantics git-svn-id: svn://10.0.0.236/trunk@46144 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/js/src/xpconnect/src/xpcwrappedjsclass.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mozilla/js/src/xpconnect/src/xpcwrappedjsclass.cpp b/mozilla/js/src/xpconnect/src/xpcwrappedjsclass.cpp index b15951e2902..67d91795802 100644 --- a/mozilla/js/src/xpconnect/src/xpcwrappedjsclass.cpp +++ b/mozilla/js/src/xpconnect/src/xpcwrappedjsclass.cpp @@ -610,8 +610,13 @@ pre_call_clean_up: uint8 arg_num = param.GetInterfaceIsArgNumber(); const nsXPTParamInfo& param = info->GetParam(arg_num); const nsXPTType& type = param.GetType(); - if(!type.IsPointer() || type.TagPart() != nsXPTType::T_IID || - !(conditional_iid = *((nsID**)params[arg_num].val.p))) + if(!type.IsPointer() || type.TagPart() != nsXPTType::T_IID) + break; + if(param.IsOut()) + conditional_iid = *((nsID**)params[arg_num].val.p); + else + conditional_iid = (nsID*) params[arg_num].val.p; + if(!conditional_iid) break; } else if(type.IsPointer() && !param.IsShared())