From 334bfbad3fda3860f51b74cd6370786ef253ad49 Mon Sep 17 00:00:00 2001 From: pescuma Date: Tue, 20 Jan 2009 23:24:30 +0000 Subject: skins: templates are kept in memory git-svn-id: http://pescuma.googlecode.com/svn/trunk/Miranda@128 c086bb3d-8645-0410-b8da-73a8550f86e7 --- .../skins/SkinLib/TextFieldState_v8_wrapper.cpp | 28 +++++++++++++++------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp') diff --git a/Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp b/Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp index 73035d9..6eb4a39 100644 --- a/Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp +++ b/Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp @@ -16,20 +16,24 @@ using namespace v8; static Handle Get_TextFieldState_text(Local property, const AccessorInfo &info) { + HandleScope scope; + Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) - return Undefined(); + return scope.Close( Undefined() ); TextFieldState *tmp = (TextFieldState *) wrap->Value(); if (tmp == NULL) - return Undefined(); + return scope.Close( Undefined() ); - return String::New((const V8_TCHAR *) tmp->getText()); + return scope.Close( String::New((const V8_TCHAR *) tmp->getText()) ); } static void Set_TextFieldState_text(Local property, Local value, const AccessorInfo& info) { + HandleScope scope; + Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) @@ -49,26 +53,30 @@ static void Set_TextFieldState_text(Local property, Local value, static Handle Get_TextFieldState_hAlign(Local property, const AccessorInfo &info) { + HandleScope scope; + Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) - return Undefined(); + return scope.Close( Undefined() ); TextFieldState *tmp = (TextFieldState *) wrap->Value(); if (tmp == NULL) - return Undefined(); + return scope.Close( Undefined() ); switch(tmp->getHAlign()) { - case LEFT: return String::New((const V8_TCHAR *) _T("LEFT")); - case CENTER: return String::New((const V8_TCHAR *) _T("CENTER")); - case RIGHT: return String::New((const V8_TCHAR *) _T("RIGHT")); + case LEFT: return scope.Close( String::New((const V8_TCHAR *) _T("LEFT")) ); + case CENTER: return scope.Close( String::New((const V8_TCHAR *) _T("CENTER")) ); + case RIGHT: return scope.Close( String::New((const V8_TCHAR *) _T("RIGHT")) ); } - return Undefined(); + return scope.Close( Undefined() ); } static void Set_TextFieldState_hAlign(Local property, Local value, const AccessorInfo& info) { + HandleScope scope; + Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) @@ -94,6 +102,8 @@ static void Set_TextFieldState_hAlign(Local property, Local value void AddTextFieldStateAcessors(Handle &templ) { + HandleScope scope; + templ->SetAccessor(String::New("text"), Get_TextFieldState_text, Set_TextFieldState_text); templ->SetAccessor(String::New("hAlign"), Get_TextFieldState_hAlign, Set_TextFieldState_hAlign); } -- cgit v1.2.3