string_bytes: export GetExternalParts

The method is useful elsewhere when needing to check if external and
grab data.
pull/5010/head
Trevor Norris 2013-07-02 00:07:47 -07:00
parent 3ff2cbc892
commit 63fc6a63c8
2 changed files with 9 additions and 2 deletions

View File

@ -230,12 +230,13 @@ size_t hex_decode(char* buf,
}
bool GetExternalParts(Handle<Value> val, const char** data, size_t* len) {
bool StringBytes::GetExternalParts(Handle<Value> val,
const char** data,
size_t* len) {
if (Buffer::HasInstance(val)) {
*data = Buffer::Data(val);
*len = Buffer::Length(val);
return true;
}
assert(val->IsString());

View File

@ -44,6 +44,12 @@ class StringBytes {
// very much slower for UTF-8
static size_t Size(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,
const char** data,
size_t* len);
// Write the bytes from the string or buffer into the char*
// returns the number of bytes written, which will always be
// <= buflen. Use StorageSize/Size first to know how much