From kfm-devel Sat Jul 28 14:45:59 2001 From: Harri Porten Date: Sat, 28 Jul 2001 14:45:59 +0000 To: kfm-devel Subject: Re: kjs bug (onSubmit related) X-MARC-Message: https://marc.info/?l=kfm-devel&m=99633169505212 On Thu, 26 Jul 2001, Michael Bayne wrote: > I think that KJScriptImp::call probably wants to stuff that return value > into it's local return value reference, which the following diff > accomplishes: Right. Well spotted. > Index: internal.cpp > =================================================================== > RCS file: /home/kde/kdelibs/kjs/internal.cpp,v > retrieving revision 1.79 > diff -u -p -r1.79 internal.cpp > --- internal.cpp 2001/07/23 18:17:54 1.79 > +++ internal.cpp 2001/07/26 21:13:29 > @@ -760,9 +760,12 @@ bool KJScriptImp::call(const KJSO &func, > > running++; > recursion++; > - func.executeCall(thisV, &args, &extraScope); > + KJSO res = func.executeCall(thisV, &args, &extraScope); > recursion--; > running--; > + > + // keep track of the return value > + retVal = res.imp(); > > return !hadException(); > } I guess you don't mind if we shorten this to: - func.executeCall(thisV, &args, &extraScope); + retVal = func.executeCall(thisV, &args, &extraScope).imp(); ? > I've applied this and it seems to do the right thing, but I don't know > much about reference counting KJSO instances and all that, so perhaps > something more sophisticated needs be done. That's indeed an interesting question. I left KJScriptImp members as Imp* because of speed reason. But after Peter's new gc patch we might have to change that. Peter ? > In any event, hopefully porten or pmk are reading this since they seem to > be the ones that do the most work on the kjs and ECMA stuff. We are. And I have to say that I am happy to see people finding & fixing such bugs by themselves. Thanks a lot. I can imagine that the code is probably hard to read and understand. Feel free to ask for help or source code comment wheenver needed. Harri.