Commit f897aba1 authored by Daniel Vogelheim's avatar Daniel Vogelheim Committed by Commit Bot

IDL compiler: Use inner type name for annotated types for GetAs* method.

Bug: 739170
Change-Id: I147200074ddd29f49d89a246c2a3a9e6cee132d1
Reviewed-on: https://chromium-review.googlesource.com/c/1325987Reviewed-by: default avatarHitoshi Yoshida <peria@chromium.org>
Commit-Queue: Daniel Vogelheim <vogelheim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606438}
parent 056e148a
...@@ -145,12 +145,13 @@ def member_context(member, info_provider): ...@@ -145,12 +145,13 @@ def member_context(member, info_provider):
_update_includes_and_forward_decls(member, info_provider) _update_includes_and_forward_decls(member, info_provider)
if member.is_nullable: if member.is_nullable:
member = member.inner_type member = member.inner_type
type_name = (member.inner_type if member.is_annotated_type else member).name
return { return {
'cpp_name': to_snake_case(v8_utilities.cpp_name(member)), 'cpp_name': to_snake_case(v8_utilities.cpp_name(member)),
'cpp_type': member.cpp_type_args(used_in_cpp_sequence=True), 'cpp_type': member.cpp_type_args(used_in_cpp_sequence=True),
'cpp_local_type': member.cpp_type, 'cpp_local_type': member.cpp_type,
'cpp_value_to_v8_value': member.cpp_value_to_v8_value( 'cpp_value_to_v8_value': member.cpp_value_to_v8_value(
cpp_value='impl.GetAs%s()' % member.name, isolate='isolate', cpp_value='impl.GetAs%s()' % type_name, isolate='isolate',
creation_context='creationContext'), creation_context='creationContext'),
'enum_type': member.enum_type, 'enum_type': member.enum_type,
'enum_values': member.enum_values, 'enum_values': member.enum_values,
...@@ -159,7 +160,7 @@ def member_context(member, info_provider): ...@@ -159,7 +160,7 @@ def member_context(member, info_provider):
'is_traceable': member.is_traceable, 'is_traceable': member.is_traceable,
'rvalue_cpp_type': member.cpp_type_args(used_as_rvalue_type=True), 'rvalue_cpp_type': member.cpp_type_args(used_as_rvalue_type=True),
'specific_type_enum': 'k' + member.name, 'specific_type_enum': 'k' + member.name,
'type_name': member.inner_type.name if member.is_annotated_type else member.name, 'type_name': type_name,
'v8_value_to_local_cpp_value': member.v8_value_to_local_cpp_value( 'v8_value_to_local_cpp_value': member.v8_value_to_local_cpp_value(
{}, 'v8Value', 'cppValue', isolate='isolate', {}, 'v8Value', 'cppValue', isolate='isolate',
use_exception_state=True) use_exception_state=True)
......
...@@ -91,7 +91,7 @@ v8::Local<v8::Value> ToV8(const StringTreatNullAsEmptyStringOrLong& impl, v8::Lo ...@@ -91,7 +91,7 @@ v8::Local<v8::Value> ToV8(const StringTreatNullAsEmptyStringOrLong& impl, v8::Lo
case StringTreatNullAsEmptyStringOrLong::SpecificType::kLong: case StringTreatNullAsEmptyStringOrLong::SpecificType::kLong:
return v8::Integer::New(isolate, impl.GetAsLong()); return v8::Integer::New(isolate, impl.GetAsLong());
case StringTreatNullAsEmptyStringOrLong::SpecificType::kStringTreatNullAsEmptyString: case StringTreatNullAsEmptyStringOrLong::SpecificType::kStringTreatNullAsEmptyString:
return V8String(isolate, impl.GetAsStringTreatNullAsEmptyString()); return V8String(isolate, impl.GetAsString());
default: default:
NOTREACHED(); NOTREACHED();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment