diff --git a/modules/packages/device-api/src/Extension.cpp b/modules/packages/device-api/src/Extension.cpp index 86bb06272e..e1b240f5d4 100644 --- a/modules/packages/device-api/src/Extension.cpp +++ b/modules/packages/device-api/src/Extension.cpp @@ -212,7 +212,6 @@ ESPostListener::ESPostListener(Escargot::ContextRef* context, Escargot::ObjectRef* listener) : context_(context), listener_(listener) { DEVICEAPI_LOG_INFO("Enter"); - GC_add_roots(&listener_, &listener_ + sizeof(Escargot::ObjectRef*)); } ESPostListener::~ESPostListener() { @@ -222,7 +221,6 @@ ESPostListener::~ESPostListener() { void ESPostListener::finalize() { DEVICEAPI_LOG_INFO("Enter"); - GC_remove_roots(&listener_, &listener_ + sizeof(Escargot::ObjectRef*)); listener_ = nullptr; context_ = nullptr; } diff --git a/modules/packages/device-api/src/Extension.h b/modules/packages/device-api/src/Extension.h index 85c68fc656..d1ada7c816 100644 --- a/modules/packages/device-api/src/Extension.h +++ b/modules/packages/device-api/src/Extension.h @@ -5,9 +5,10 @@ #ifndef WRT_SERVICE_NODE_EXTENSION_H_ #define WRT_SERVICE_NODE_EXTENSION_H_ +#include +#include #include #include -#include #include "XW_Extension.h" #include "XW_Extension_SyncMessage.h" @@ -203,12 +204,12 @@ class ESPostListener { }; class ESPostMessageListener : public wrt::xwalk::PostMessageListener, - public ESPostListener { + public ESPostListener, public gc { public: static ESPostMessageListener* create(Escargot::ContextRef* context, Escargot::ObjectRef* listener) { - return new ESPostMessageListener(context, listener); + return new (NoGC)ESPostMessageListener(context, listener); } void PostMessageToJS(const std::string& msg); @@ -232,12 +233,12 @@ class ESPostMessageListener : public wrt::xwalk::PostMessageListener, }; class ESPostDataListener : public wrt::xwalk::PostDataListener, - public ESPostListener { + public ESPostListener, public gc { public: static ESPostDataListener* create(Escargot::ContextRef* context, Escargot::ObjectRef* listener) { - return new ESPostDataListener(context, listener); + return new (NoGC)ESPostDataListener(context, listener); } void PostDataToJS(const std::string& msg, uint8_t* buffer, size_t len);