Skip to content

Commit 5919cd9

Browse files
committed
Made .wtObj more defensive in some cases
jQuery.data would not error on trying to get the data for null, so let's check if jsRef() is not null first.
1 parent cbafa6c commit 5919cd9

File tree

9 files changed

+19
-22
lines changed

9 files changed

+19
-22
lines changed

src/Wt/WAbstractSpinBox.C

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ void WAbstractSpinBox::connectJavaScript(Wt::EventSignalBase& s,
137137
{
138138
std::string jsFunction =
139139
"function(obj, event) {"
140-
"""var o = " + jsRef() + ".wtObj;"
141-
"""if (o) o." + methodName + "(obj, event);"
140+
"""var o = " + jsRef() + ";"
141+
"""if (o && o.wtObj) o.wtObj." + methodName + "(obj, event);"
142142
"}";
143143

144144
s.connect(jsFunction);

src/Wt/WDateEdit.C

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,8 +214,8 @@ void WDateEdit::connectJavaScript(Wt::EventSignalBase& s,
214214
{
215215
std::string jsFunction =
216216
"function(dobj, event) {"
217-
"""var o = " + jsRef() + ".wtDObj;"
218-
"""if (o) o." + methodName + "(dobj, event);"
217+
"""var o = " + jsRef() + ";"
218+
"""if (o && o.wtDObj) o.wtDObj." + methodName + "(dobj, event);"
219219
"}";
220220

221221
s.connect(jsFunction);

src/Wt/WImage.C

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -293,10 +293,7 @@ std::string WImage::updateAreasJS()
293293
ss <<
294294
"(function(){"
295295
"""var w = " << jsRef() << ";"
296-
"""if (w) {"
297-
"" "var o = " << jsRef() << ".wtObj;"
298-
"" "if (o) { o.updateAreas(); }"
299-
"""}"
296+
"""if (w && w.wtObj) { o.wtObj.updateAreas(); }"
300297
"})();";
301298
}
302299
return ss.str();

src/Wt/WLineEdit.C

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -538,8 +538,8 @@ void WLineEdit::connectJavaScript(Wt::EventSignalBase& s,
538538
{
539539
std::string jsFunction =
540540
"function(lobj, event) {"
541-
"""var o = " + jsRef() + ".wtLObj;"
542-
"""if (o) o." + methodName + "(lobj, event);"
541+
"""var o = " + jsRef() + ";"
542+
"""if (o && o.wtLObj) o.wtLObj." + methodName + "(lobj, event);"
543543
"}";
544544

545545
s.connect(jsFunction);

src/Wt/WPopupWidget.C

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,11 @@ void WPopupWidget::setHidden(bool hidden, const WAnimation& animation)
8282

8383
if (!WWebWidget::canOptimizeUpdates() || isRendered()) {
8484
if (hidden)
85-
doJavaScript("var o = " + jsRef() + ".wtPopup;"
86-
"if (o) o.hidden();");
85+
doJavaScript("var o = " + jsRef() + ";"
86+
"if (o && o.wtPopup) o.wtPopup.hidden();");
8787
else
88-
doJavaScript("var o = " + jsRef() + ".wtPopup;"
89-
"if (o) o.shown();");
88+
doJavaScript("var o = " + jsRef() + ";"
89+
"if (o && o.wtPopup) o.wtPopup.shown();");
9090
}
9191
}
9292

src/Wt/WSuggestionPopup.C

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,8 @@ void WSuggestionPopup::connectObjJS(EventSignalBase& s,
149149
{
150150
std::string jsFunction =
151151
"function(obj, event) {"
152-
"""var o = " + jsRef() + ".wtObj;"
153-
"""if (o) o." + methodName + "(obj, event);"
152+
"""var o = " + jsRef() + ";"
153+
"""if (o && o.wtObj) o.wtObj." + methodName + "(obj, event);"
154154
"}";
155155
s.connect(jsFunction);
156156
}

src/Wt/WTableView.C

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -827,8 +827,8 @@ void WTableView::defineJavaScript()
827827

828828
if (canvas_) {
829829
app->addAutoJavaScript
830-
("{var obj = " + jsRef() + ".wtObj;"
831-
"if (obj) obj.autoJavaScript();}");
830+
("{var obj = " + jsRef() + ";"
831+
"if (obj && obj.wtObj) obj.wtObj.autoJavaScript();}");
832832

833833
connectObjJS(canvas_->mouseWentDown(), "mouseDown");
834834
connectObjJS(canvas_->mouseWentUp(), "mouseUp");

src/Wt/WTimeEdit.C

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,8 @@ void WTimeEdit::connectJavaScript(Wt::EventSignalBase& s,
198198
{
199199
std::string jsFunction =
200200
"function(dobj, event) {"
201-
"""var o = " + jsRef() + ".wtDObj;"
202-
"""if(o) o." + methodName + "(dobj, event);"
201+
"""var o = " + jsRef() + ";"
202+
"""if(o && o.wtDObj) o.wtDObj." + methodName + "(dobj, event);"
203203
"}";
204204
s.connect(jsFunction);
205205
}

src/Wt/WTreeTable.C

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ void WTreeTable::render(WFlags<RenderFlag> flags)
8080
resize(width(), height());
8181

8282
WApplication::instance()->addAutoJavaScript
83-
("{var obj = " + jsRef() + ".wtObj;"
84-
"if (obj) obj.autoJavaScript();}");
83+
("{var obj = " + jsRef() + ";"
84+
"if (obj && obj.wtObj) obj.wtObj.autoJavaScript();}");
8585
}
8686

8787
WCompositeWidget::render(flags);

0 commit comments

Comments
 (0)