summaryrefslogtreecommitdiff
path: root/Plugins/skins/SkinLib/ControlFieldState_v8_wrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Plugins/skins/SkinLib/ControlFieldState_v8_wrapper.cpp')
-rw-r--r--Plugins/skins/SkinLib/ControlFieldState_v8_wrapper.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/Plugins/skins/SkinLib/ControlFieldState_v8_wrapper.cpp b/Plugins/skins/SkinLib/ControlFieldState_v8_wrapper.cpp
index a8eee02..9cbd06a 100644
--- a/Plugins/skins/SkinLib/ControlFieldState_v8_wrapper.cpp
+++ b/Plugins/skins/SkinLib/ControlFieldState_v8_wrapper.cpp
@@ -18,7 +18,13 @@ static Handle<Value> Get_ControlFieldState_text(Local<String> property, const Ac
{
Local<Object> self = info.Holder();
Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
+ if (wrap.IsEmpty())
+ return Undefined();
+
ControlFieldState *tmp = (ControlFieldState *) wrap->Value();
+ if (tmp == NULL)
+ return Undefined();
+
return String::New((const V8_TCHAR *) tmp->getText());
}
@@ -26,9 +32,18 @@ static void Set_ControlFieldState_text(Local<String> property, Local<Value> valu
{
Local<Object> self = info.Holder();
Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
+ if (wrap.IsEmpty())
+ return;
+
ControlFieldState *tmp = (ControlFieldState *) wrap->Value();
- String::Utf8Value utf8_value(value);
- tmp->setText(Utf8ToTchar(*utf8_value));
+ if (tmp == NULL)
+ return;
+
+ if (!value.IsEmpty() && value->IsString())
+ {
+ String::Utf8Value utf8_value(value);
+ tmp->setText(Utf8ToTchar(*utf8_value));
+ }
}