From 916b6c6e10c42ff64e543ec36a28df63ad0daa4b Mon Sep 17 00:00:00 2001 From: Richard Huang Date: Thu, 9 Jul 2015 14:38:13 +0100 Subject: [PATCH] Fixed crash while wrapping a Control as an actor in JavaScript plugin Change-Id: I4c01b5a77836ffd9b22bf3c1b2aa2f809871f1c5 --- plugins/dali-script-v8/src/actors/actor-wrapper.cpp | 6 +++++- plugins/dali-script-v8/src/dali-wrapper.cpp | 2 -- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/dali-script-v8/src/actors/actor-wrapper.cpp b/plugins/dali-script-v8/src/actors/actor-wrapper.cpp index 7b9b158..149edb9 100644 --- a/plugins/dali-script-v8/src/actors/actor-wrapper.cpp +++ b/plugins/dali-script-v8/src/actors/actor-wrapper.cpp @@ -20,6 +20,7 @@ // EXTERNAL INCLUDES #include +#include // INTERNAL INCLUDES #include @@ -318,7 +319,10 @@ ActorWrapper::ActorWrapper( Actor actor, v8::Handle ActorWrapper::WrapActor(v8::Isolate* isolate, Actor actor ) { v8::EscapableHandleScope handleScope( isolate ); - v8::Local object = WrapActor( isolate, actor, GetActorType( actor.GetTypeName() ) ); + + // Check whether the actor is a Control + ActorWrapper::ActorType type = Toolkit::Control::DownCast(actor) ? ACTOR : GetActorType( actor.GetTypeName() ); + v8::Local object = WrapActor( isolate, actor, type ); return handleScope.Escape( object ); } diff --git a/plugins/dali-script-v8/src/dali-wrapper.cpp b/plugins/dali-script-v8/src/dali-wrapper.cpp index c716f75..257b5d4 100644 --- a/plugins/dali-script-v8/src/dali-wrapper.cpp +++ b/plugins/dali-script-v8/src/dali-wrapper.cpp @@ -63,9 +63,7 @@ const ApiFunction ConstructorFunctionTable[]= { "PathConstrainer", PathConstrainerWrapper::NewPathConstrainer}, { "LinearConstrainer", LinearConstrainerWrapper::NewLinearConstrainer}, { "Actor", ActorWrapper::NewActor }, - { "TextActor", ActorWrapper::NewActor }, { "ImageActor", ActorWrapper::NewActor }, - { "MeshActor", ActorWrapper::NewActor }, { "CameraActor", ActorWrapper::NewActor }, { "Layer", ActorWrapper::NewActor }, { "Control", ActorWrapper::NewControl }, -- 2.7.4