From eb215ccb40265043d3a1f8d0cbc2232108241957 Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Tue, 23 Feb 2016 15:39:37 -0800 Subject: [PATCH] src: update uses of deprecated NewExternal V8 String::NewExternal is deprecated in 4.9. Migrate string_bytes.cc to the alternatives. --- src/string_bytes.cc | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/string_bytes.cc b/src/string_bytes.cc index a916caf75e8960..c49e261e4c9cf3 100644 --- a/src/string_bytes.cc +++ b/src/string_bytes.cc @@ -77,7 +77,7 @@ class ExternString: public ResourceType { ExternString* h_str = new ExternString(isolate, data, length); - MaybeLocal str = String::NewExternal(isolate, h_str); + MaybeLocal str = NewExternal(isolate, h_str); isolate->AdjustAmountOfExternalAllocatedMemory(h_str->byte_length()); if (str.IsEmpty()) { @@ -93,6 +93,9 @@ class ExternString: public ResourceType { private: ExternString(Isolate* isolate, const TypeName* data, size_t length) : isolate_(isolate), data_(data), length_(length) { } + static MaybeLocal NewExternal(Isolate* isolate, + ExternString* h_str); + Isolate* isolate_; const TypeName* data_; size_t length_; @@ -105,6 +108,20 @@ typedef ExternString ExternTwoByteString; +template <> +MaybeLocal ExternOneByteString::NewExternal( + Isolate* isolate, ExternOneByteString* h_str) { + return String::NewExternalOneByte(isolate, h_str); +} + + +template <> +MaybeLocal ExternTwoByteString::NewExternal( + Isolate* isolate, ExternTwoByteString* h_str) { + return String::NewExternalTwoByte(isolate, h_str); +} + + //// Base 64 //// #define base64_encoded_size(size) ((size + 2 - ((size + 2) % 3)) / 3 * 4)