Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(350)

Unified Diff: Source/bindings/templates/dictionary_v8.cpp

Issue 656073002: IDL: Use ALLOW_ONLY_INLINE_ALLOCATION() in dictionaries (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/bindings/templates/dictionary_v8.cpp
diff --git a/Source/bindings/templates/dictionary_v8.cpp b/Source/bindings/templates/dictionary_v8.cpp
index c536fcedd5c5416044ec2b3a99ed9949dd303b97..be7ab12015d0b777910ee35fb6ad2a979e118cca 100644
--- a/Source/bindings/templates/dictionary_v8.cpp
+++ b/Source/bindings/templates/dictionary_v8.cpp
@@ -13,11 +13,12 @@
namespace blink {
-{{cpp_class}}* {{v8_class}}::toImpl(v8::Isolate* isolate, v8::Handle<v8::Value> v8Value, ExceptionState& exceptionState)
+void {{v8_class}}::toImpl(v8::Isolate* isolate, v8::Handle<v8::Value> v8Value, {{cpp_class}}& impl, ExceptionState& exceptionState)
{
- ASSERT(isUndefinedOrNull(v8Value) || v8Value->IsObject());
haraken 2014/10/15 14:38:28 Can we drop the v8Value->IsObject() check?
bashi 2014/10/17 00:50:05 Ah, maybe we can't. Even though the binding layer
+ if (isUndefinedOrNull(v8Value))
+ return;
+ ASSERT(v8Value->IsObject());
- {{cpp_class}}* impl = {{cpp_class}}::create();
// FIXME: Do not use Dictionary and DictionaryHelper
// https://crbug.com/321462
Dictionary dictionary(v8Value, isolate);
@@ -31,30 +32,30 @@ namespace blink {
String string = {{member.name}};
if (!({{member.enum_validation_expression}})) {
exceptionState.throwTypeError("member {{member.name}} ('" + string + "') is not a valid enum value.");
- return 0;
+ return;
}
{% elif member.is_object %}
if (!{{member.name}}.isObject()) {
exceptionState.throwTypeError("member {{member.name}} is not an object.");
- return 0;
+ return;
}
{% endif %}
- impl->{{member.setter_name}}({{member.name}});
+ impl.{{member.setter_name}}({{member.name}});
} else if (block.HasCaught()) {
exceptionState.rethrowV8Exception(block.Exception());
- return 0;
+ return;
}
+
{% endfor %}
- return impl;
}
-v8::Handle<v8::Value> toV8({{cpp_class}}* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
+v8::Handle<v8::Value> toV8({{cpp_class}}& impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
{
v8::Handle<v8::Object> v8Object = v8::Object::New(isolate);
{% for member in members %}
- if (impl->{{member.has_method_name}}()) {
+ if (impl.{{member.has_method_name}}()) {
{% if member.is_object %}
- ASSERT(impl->{{member.cpp_name}}().isObject());
+ ASSERT(impl.{{member.cpp_name}}().isObject());
{% endif %}
v8Object->Set(v8String(isolate, "{{member.name}}"), {{member.cpp_value_to_v8_value}});
{% if member.v8_default_value %}
@@ -62,6 +63,7 @@ v8::Handle<v8::Value> toV8({{cpp_class}}* impl, v8::Handle<v8::Object> creationC
v8Object->Set(v8String(isolate, "{{member.name}}"), {{member.v8_default_value}});
{% endif %}
}
+
{% endfor %}
return v8Object;
}

Powered by Google App Engine
This is Rietveld 408576698