diff options
Diffstat (limited to 'src/string_bytes.h')
-rw-r--r-- | src/string_bytes.h | 67 |
1 files changed, 61 insertions, 6 deletions
diff --git a/src/string_bytes.h b/src/string_bytes.h index aa32aea5f8..feaf61617c 100644 --- a/src/string_bytes.h +++ b/src/string_bytes.h @@ -34,19 +34,26 @@ class StringBytes { // Does the string match the encoding? Quick but non-exhaustive. // Example: a HEX string must have a length that's a multiple of two. // FIXME(bnoordhuis) IsMaybeValidString()? Naming things is hard... - static bool IsValidString(v8::Handle<v8::String> string, enum encoding enc); + static bool IsValidString(v8::Isolate* isolate, + v8::Handle<v8::String> string, + enum encoding enc); // Fast, but can be 2 bytes oversized for Base64, and // as much as triple UTF-8 strings <= 65536 chars in length - static size_t StorageSize(v8::Handle<v8::Value> val, enum encoding enc); + static size_t StorageSize(v8::Isolate* isolate, + v8::Handle<v8::Value> val, + enum encoding enc); // Precise byte count, but slightly slower for Base64 and // very much slower for UTF-8 - static size_t Size(v8::Handle<v8::Value> val, enum encoding enc); + static size_t Size(v8::Isolate* isolate, + v8::Handle<v8::Value> val, + enum encoding enc); // If the string is external then assign external properties to data and len, // then return true. If not return false. - static bool GetExternalParts(v8::Handle<v8::Value> val, + static bool GetExternalParts(v8::Isolate* isolate, + v8::Handle<v8::Value> val, const char** data, size_t* len); @@ -54,16 +61,64 @@ class StringBytes { // returns the number of bytes written, which will always be // <= buflen. Use StorageSize/Size first to know how much // memory to allocate. - static size_t Write(char* buf, + static size_t Write(v8::Isolate* isolate, + char* buf, size_t buflen, v8::Handle<v8::Value> val, enum encoding enc, int* chars_written = NULL); // Take the bytes in the src, and turn it into a Buffer or String. - static v8::Local<v8::Value> Encode(const char* buf, + static v8::Local<v8::Value> Encode(v8::Isolate* isolate, + const char* buf, size_t buflen, enum encoding encoding); + + // Deprecated legacy interface + + NODE_DEPRECATED("Use IsValidString(isolate, ...)", + static inline bool IsValidString( + v8::Handle<v8::String> string, + enum encoding enc) { + return IsValidString(v8::Isolate::GetCurrent(), string, enc); + }) + + NODE_DEPRECATED("Use StorageSize(isolate, ...)", + static inline size_t StorageSize(v8::Handle<v8::Value> val, + enum encoding enc) { + return StorageSize(v8::Isolate::GetCurrent(), val, enc); + }) + + NODE_DEPRECATED("Use Size(isolate, ...)", + static inline size_t Size(v8::Handle<v8::Value> val, + enum encoding enc) { + return Size(v8::Isolate::GetCurrent(), val, enc); + }) + + NODE_DEPRECATED("Use GetExternalParts(isolate, ...)", + static inline bool GetExternalParts(v8::Handle<v8::Value> val, + const char** data, + size_t* len) { + return GetExternalParts(v8::Isolate::GetCurrent(), val, data, len); + }) + + NODE_DEPRECATED("Use Write(isolate, ...)", + static inline size_t Write(char* buf, + size_t buflen, + v8::Handle<v8::Value> val, + enum encoding enc, + int* chars_written = NULL) { + v8::Isolate* isolate = v8::Isolate::GetCurrent(); + return Write(isolate, buf, buflen, val, enc, chars_written); + }) + + NODE_DEPRECATED("Use Encode(isolate, ...)", + static inline v8::Local<v8::Value> Encode( + const char* buf, + size_t buflen, + enum encoding encoding) { + return Encode(v8::Isolate::GetCurrent(), buf, buflen, encoding); + }) }; } // namespace node |