diff options
author | yh106.jung <yh106.jung@samsung.com> | 2017-02-22 15:35:48 +0900 |
---|---|---|
committer | yh106.jung <yh106.jung@samsung.com> | 2017-02-23 15:46:41 +0900 |
commit | 056ffb89a437c09723b96f7cea4b3c7f9921e199 (patch) | |
tree | abed6694f86da283bbd9a359f1117792068559ed | |
parent | cb29d0b27ff0f3ac0a966654a3a9adccab441ba4 (diff) | |
download | chromium-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.cc | 15 |
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; } |