• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2     This file is part of the WebKit open source project.
3     This file has been generated by generate-bindings.pl. DO NOT MODIFY!
4 
5     This library is free software; you can redistribute it and/or
6     modify it under the terms of the GNU Library General Public
7     License as published by the Free Software Foundation; either
8     version 2 of the License, or (at your option) any later version.
9 
10     This library is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13     Library General Public License for more details.
14 
15     You should have received a copy of the GNU Library General Public License
16     along with this library; see the file COPYING.LIB.  If not, write to
17     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18     Boston, MA 02110-1301, USA.
19 */
20 
21 #include "config.h"
22 
23 #if ENABLE(DATABASE)
24 
25 #include "JSTestCallback.h"
26 
27 #include "JSClass1.h"
28 #include "JSClass2.h"
29 #include "JSDOMStringList.h"
30 #include "ScriptExecutionContext.h"
31 #include <runtime/JSLock.h>
32 #include <wtf/MainThread.h>
33 
34 using namespace JSC;
35 
36 namespace WebCore {
37 
JSTestCallback(JSObject * callback,JSDOMGlobalObject * globalObject)38 JSTestCallback::JSTestCallback(JSObject* callback, JSDOMGlobalObject* globalObject)
39     : ActiveDOMCallback(globalObject->scriptExecutionContext())
40     , m_data(new JSCallbackData(callback, globalObject))
41 {
42 }
43 
~JSTestCallback()44 JSTestCallback::~JSTestCallback()
45 {
46     ScriptExecutionContext* context = scriptExecutionContext();
47     // When the context is destroyed, all tasks with a reference to a callback
48     // should be deleted. So if the context is 0, we are on the context thread.
49     if (!context || context->isContextThread())
50         delete m_data;
51     else
52         context->postTask(DeleteCallbackDataTask::create(m_data));
53 #ifndef NDEBUG
54     m_data = 0;
55 #endif
56 }
57 
58 // Functions
59 
callbackWithNoParam()60 bool JSTestCallback::callbackWithNoParam()
61 {
62     if (!canInvokeCallback())
63         return true;
64 
65     RefPtr<JSTestCallback> protect(this);
66 
67     JSLock lock(SilenceAssertionsOnly);
68 
69     ExecState* exec = m_data->globalObject()->globalExec();
70     MarkedArgumentBuffer args;
71 
72     bool raisedException = false;
73     m_data->invokeCallback(args, &raisedException);
74     return !raisedException;
75 }
76 
callbackWithClass1Param(Class1 * class1Param)77 bool JSTestCallback::callbackWithClass1Param(Class1* class1Param)
78 {
79     if (!canInvokeCallback())
80         return true;
81 
82     RefPtr<JSTestCallback> protect(this);
83 
84     JSLock lock(SilenceAssertionsOnly);
85 
86     ExecState* exec = m_data->globalObject()->globalExec();
87     MarkedArgumentBuffer args;
88     args.append(toJS(exec, class1Param));
89 
90     bool raisedException = false;
91     m_data->invokeCallback(args, &raisedException);
92     return !raisedException;
93 }
94 
callbackWithClass2Param(Class2 * class2Param,const String & strArg)95 bool JSTestCallback::callbackWithClass2Param(Class2* class2Param, const String& strArg)
96 {
97     if (!canInvokeCallback())
98         return true;
99 
100     RefPtr<JSTestCallback> protect(this);
101 
102     JSLock lock(SilenceAssertionsOnly);
103 
104     ExecState* exec = m_data->globalObject()->globalExec();
105     MarkedArgumentBuffer args;
106     args.append(toJS(exec, class2Param));
107     args.append(jsString(exec, strArg));
108 
109     bool raisedException = false;
110     m_data->invokeCallback(args, &raisedException);
111     return !raisedException;
112 }
113 
callbackWithStringList(DOMStringList * listParam)114 bool JSTestCallback::callbackWithStringList(DOMStringList* listParam)
115 {
116     if (!canInvokeCallback())
117         return true;
118 
119     RefPtr<JSTestCallback> protect(this);
120 
121     JSLock lock(SilenceAssertionsOnly);
122 
123     ExecState* exec = m_data->globalObject()->globalExec();
124     MarkedArgumentBuffer args;
125     args.append(toJS(exec, listParam));
126 
127     bool raisedException = false;
128     m_data->invokeCallback(args, &raisedException);
129     return !raisedException;
130 }
131 
132 }
133 
134 #endif // ENABLE(DATABASE)
135