Update change log and spec for wrt-plugins-tizen_0.4.26
authorDongjin Choi <milkelf.choi@samsung.com>
Mon, 29 Apr 2013 14:07:23 +0000 (23:07 +0900)
committerDongjin Choi <milkelf.choi@samsung.com>
Mon, 29 Apr 2013 14:07:23 +0000 (23:07 +0900)
[model] REDWOOD
[binary_type] PDA
[customer] OPEN

[Issue] DCM-1133
[Problem] removeChangeListener crash bug fix
[Cause] removeChangeListener crash bug fix
[Solution] removeChangeListener crash bug fix

[Issue] N/A
[Problem] N/A
[Cause] N/A
[Solution] Fixed the addChangeListener bug for TCT

[team] WebAPI
[request] N/A
[horizontal_expansion] N/A

packaging/wrt-plugins-tizen.spec
src/Callhistory/JSCallHistory.cpp
src/Messaging/JSMessagingStorage.cpp
src/Messaging/MessageListenerManager.h
src/Messaging/MessagingListener.cpp

index 5f8d769..204e6c5 100755 (executable)
@@ -1,7 +1,7 @@
 Name:       wrt-plugins-tizen
 Summary:    JavaScript plugins for WebRuntime
 Version:    0.4.26
-Release:    0
+Release:    1
 Group:      Development/Libraries
 License:    Apache License, Version 2.0
 Source0:    %{name}-%{version}.tar.gz
index a9a89d1..d39b071 100755 (executable)
@@ -479,7 +479,7 @@ JSValueRef JSCallHistory::addChangeListener(JSContextRef context, JSObjectRef ob
     try{
         ArgumentValidator validator(context, argumentCount, arguments);
 
-        JSObjectRef observerObj = validator.toObject(0);
+        JSObjectRef observerObj = validator.toCallbackObject(0, false,"onadded","onchanged","onremoved",NULL);
 
                if (argumentCount < 1) {
                        return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Type missmatch error");
index 69fd636..9daeffd 100644 (file)
@@ -1342,9 +1342,12 @@ JSValueRef JSMessagingStorage::removeChangeListener(JSContextRef context, JSObje
         try{
             MessagingListener::getInstance().removeIncomingMsgCallback(handler, objectPriv->getType(), objectPriv->getIndex());
         }
-            catch(const WrtDeviceApis::Commons::NotFoundException& exc)
+        catch(const WrtDeviceApis::Commons::NotFoundException& exc)
         {
-            LoggerE(exc.GetMessage().c_str());
+            LoggerD("NotFoundException");
+            MessageListenerCancellerPtr canceller = MessageListenerCancellerPtr(new MessageListenerCanceller(priv->getContext(), thisObject, objectPriv->getIndex()));
+            IListenerItemPtr listenerItem = DPL::StaticPointerCast<IListenerItem>(canceller);
+            MessageListenerManagerSingleton::Instance().unregisterListener(listenerItem);
             return JSValueMakeUndefined(context);
         }
 
index ff96965..843561d 100644 (file)
@@ -83,6 +83,9 @@ public:
                }Catch(WrtDeviceApis::Commons::InvalidArgumentException) {
                        LoggerE("Try to deregister by unmatched service");
                        return;
+               }Catch(WrtDeviceApis::Commons::NotFoundException) {
+                       LoggerE("Try to deregister by unmatched service");
+                       return;
                }
        }
 
index d76b5ac..ae36649 100644 (file)
@@ -755,7 +755,7 @@ void MessagingListener::removeIncomingMsgCallback(long handle, int type, long in
     if(!checkMessagingEmitter(handle, type, index))
     {
         LoggerW("Try to deregister by unmatched service or unknown id");
-        ThrowMsg(WrtDeviceApis::Commons::NotFoundException, "Unknown id");
+        Throw(WrtDeviceApis::Commons::NotFoundException);
     }
                
     msgRemoved += m_MessageCallbacks.erase(handle);
@@ -763,7 +763,7 @@ void MessagingListener::removeIncomingMsgCallback(long handle, int type, long in
     folderRemoved += m_FolderCallbacks.erase(handle);
 
     // there are duplicate handles
-    if (msgRemoved+msgRemoved+folderRemoved > 1) {
+    if (msgRemoved+convRemoved+folderRemoved > 1) {
         LoggerE("Duplicate callback handles!");
     }
     EmitterMessageReceived::IdType temp_handle;