summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryh106.jung <yh106.jung@samsung.com>2017-02-22 15:35:48 +0900
committeryh106.jung <yh106.jung@samsung.com>2017-02-23 15:46:41 +0900
commit056ffb89a437c09723b96f7cea4b3c7f9921e199 (patch)
treeabed6694f86da283bbd9a359f1117792068559ed
parentcb29d0b27ff0f3ac0a966654a3a9adccab441ba4 (diff)
downloadchromium-efl-tizen_4.0_m47_beta.tar.gz
chromium-efl-tizen_4.0_m47_beta.tar.bz2
chromium-efl-tizen_4.0_m47_beta.zip
[API] fixup! fixup! Implement AddJavascriptInterfacetizen_4.0_m47_beta
String type message body has been returned as std::string* type, not char* type till now. But it should be returned as char* type because chromium-efl is exposing CAPI. This patch returns char* type using strdup for string type message body. Change-Id: Ie875600ca570b4792ae5d30b623dbe3c4d7e63fd Signed-off-by: yh106.jung <yh106.jung@samsung.com>
-rw-r--r--tizen_src/ewk/efl_integration/browser/javascript_interface/gin_native_bridge_dispatcher_host.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/tizen_src/ewk/efl_integration/browser/javascript_interface/gin_native_bridge_dispatcher_host.cc b/tizen_src/ewk/efl_integration/browser/javascript_interface/gin_native_bridge_dispatcher_host.cc
index 81fb9486347f..6f798bae0778 100644
--- a/tizen_src/ewk/efl_integration/browser/javascript_interface/gin_native_bridge_dispatcher_host.cc
+++ b/tizen_src/ewk/efl_integration/browser/javascript_interface/gin_native_bridge_dispatcher_host.cc
@@ -198,8 +198,7 @@ void GinNativeBridgeDispatcherHost::OnInvokeMethod(
values.str_buf = "";
bool bool_buf = false;
- std::string str_buf = "";
- std::string token = "";
+ bool should_free = false;
base::ListValue::const_iterator iter = list->begin();
switch ((*iter)->GetType()) {
@@ -218,19 +217,22 @@ void GinNativeBridgeDispatcherHost::OnInvokeMethod(
break;
case base::Value::TYPE_STRING:
(*iter)->GetAsString(&values.str_buf);
- msg.body = &values.str_buf;
+ msg.body = strdup(values.str_buf.c_str());
+ should_free = true;
break;
case base::Value::TYPE_DICTIONARY:
const base::DictionaryValue* dict;
(*iter)->GetAsDictionary(&dict);
values.str_buf = ConvertDictionaryValueToString(dict);
- msg.body = &values.str_buf;
+ msg.body = strdup(values.str_buf.c_str());
+ should_free = true;
break;
case base::Value::TYPE_LIST:
const base::ListValue* array;
(*iter)->GetAsList(&array);
values.str_buf = ConvertListValueToString(array);
- msg.body = &values.str_buf;
+ msg.body = strdup(values.str_buf.c_str());
+ should_free = true;
break;
default :
wrapped_result->Append(base::Value::CreateNullValue());
@@ -240,6 +242,9 @@ void GinNativeBridgeDispatcherHost::OnInvokeMethod(
object->CallBack()(object->GetView(), msg);
+ if (should_free)
+ free(msg.body);
+
return;
}