mirror of https://github.com/nodejs/node.git
string_bytes: export GetExternalParts
The method is useful elsewhere when needing to check if external and grab data.pull/5010/head
parent
3ff2cbc892
commit
63fc6a63c8
|
@ -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)) {
|
if (Buffer::HasInstance(val)) {
|
||||||
*data = Buffer::Data(val);
|
*data = Buffer::Data(val);
|
||||||
*len = Buffer::Length(val);
|
*len = Buffer::Length(val);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(val->IsString());
|
assert(val->IsString());
|
||||||
|
|
|
@ -44,6 +44,12 @@ class StringBytes {
|
||||||
// very much slower for UTF-8
|
// very much slower for UTF-8
|
||||||
static size_t Size(v8::Handle<v8::Value> val, enum encoding enc);
|
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*
|
// Write the bytes from the string or buffer into the char*
|
||||||
// returns the number of bytes written, which will always be
|
// returns the number of bytes written, which will always be
|
||||||
// <= buflen. Use StorageSize/Size first to know how much
|
// <= buflen. Use StorageSize/Size first to know how much
|
||||||
|
|
Loading…
Reference in New Issue