Index: content/renderer/v8_value_converter_impl.cc |
diff --git a/content/renderer/v8_value_converter_impl.cc b/content/renderer/v8_value_converter_impl.cc |
index 15a3ca4f06a6c55d886ce8ea4e18fa22f64ac004..993ee371039c8942d19a92d93e1ade04d9f9bacd 100644 |
--- a/content/renderer/v8_value_converter_impl.cc |
+++ b/content/renderer/v8_value_converter_impl.cc |
@@ -257,15 +257,15 @@ base::BinaryValue* V8ValueConverterImpl::FromV8Buffer( |
char* data = NULL; |
size_t length = 0; |
- WebKit::WebArrayBuffer* array_buffer = |
- WebKit::WebArrayBuffer::createFromV8Value(val); |
- if (array_buffer) { |
+ scoped_ptr<WebKit::WebArrayBuffer> array_buffer( |
+ WebKit::WebArrayBuffer::createFromV8Value(val)); |
+ scoped_ptr<WebKit::WebArrayBufferView> view; |
+ if (array_buffer.get()) { |
data = reinterpret_cast<char*>(array_buffer->data()); |
length = array_buffer->byteLength(); |
} else { |
- WebKit::WebArrayBufferView* view = |
- WebKit::WebArrayBufferView::createFromV8Value(val); |
- if (view) { |
+ view.reset(WebKit::WebArrayBufferView::createFromV8Value(val)); |
+ if (view.get()) { |
data = reinterpret_cast<char*>(view->baseAddress()) + view->byteOffset(); |
length = view->byteLength(); |
} |