[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdenonbeta/kdom/ecma
From: Nikolas Zimmermann <wildfox () kde ! org>
Date: 2005-08-22 11:51:22
Message-ID: 1124711482.955662.27710.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 451998 by wildfox:
Take DOMStringImpl ptr params in createEventListener...
M +20 -5 Ecma.cpp
M +1 -2 Ecma.h
--- trunk/kdenonbeta/kdom/ecma/Ecma.cpp #451997:451998
@@ -242,19 +242,30 @@
return i;
}
-EventListenerImpl *Ecma::createEventListener(const DOMString &type, const DOMString \
&jsCode) +EventListenerImpl *Ecma::createEventListener(DOMStringImpl *type, \
DOMStringImpl *jsCode) {
+ if(!type || !jsCode)
+ return 0;
+
+ type->ref();
+ jsCode->ref();
+
KJS::Interpreter::lock();
// We probably deal with sth. like onload="alert('hi');' ...
- DOMString internalType = DOMString("[KDOM] - ") + jsCode;
+ DOMString internalType = DOMString("[KDOM] - ") + DOMString(jsCode);
QPtrDictIterator<EventListenerImpl> it(d->eventListeners);
for( ; it.current(); ++it)
{
EventListenerImpl *current = it.current();
if(DOMString(current->internalType()) == internalType)
+ {
+ type->deref();
+ jsCode->deref();
+
return current;
+ }
}
static KJS::String eventString("event");
@@ -264,7 +275,7 @@
KJS::List args;
args.append(eventString);
- args.append(KJS::String(jsCode.string()));
+ args.append(KJS::String(jsCode->string()));
KJS::Object obj = constr.construct(exec, args);
if(exec->hadException())
@@ -284,9 +295,13 @@
addEventListener(i, static_cast<KJS::ObjectImp *>(obj.imp()));
}
else
- kdError() << "Unable to create event listener object for event type \"" << \
type << "\"" << endl; + kdError() << "Unable to create event listener object \
for event type \"" << type->string() << "\"" << endl;
- KJS::Interpreter::unlock();
+ KJS::Interpreter::unlock();
+
+ type->deref();
+ jsCode->deref();
+
return i;
}
--- trunk/kdenonbeta/kdom/ecma/Ecma.h #451997:451998
@@ -47,7 +47,6 @@
class CSSValueImpl;
class EventImpl;
- class DOMString;
class CDFInterface;
class DocumentImpl;
class DOMStringImpl;
@@ -72,7 +71,7 @@
// Internal, used to handle event listeners
KJS::Object ecmaListenerToObject(KJS::ExecState *exec, const KJS::Value \
&listener);
- EventListenerImpl *createEventListener(const DOMString &type, const \
DOMString &jsCode); + EventListenerImpl *createEventListener(DOMStringImpl \
*type, DOMStringImpl *jsCode);
EventListenerImpl *createEventListener(KJS::ExecState *exec, const \
KJS::Value &listener);
EventListenerImpl *findEventListener(KJS::ExecState *exec, const KJS::Value \
&listener);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic