Skip to content

Commit 0cf03ab

Browse files
committed
Add char* constructor for Buffer
1 parent bc69547 commit 0cf03ab

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

src/node_buffer.cc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,18 @@ Buffer* Buffer::New(size_t size) {
9292
}
9393

9494

95+
Buffer* Buffer::New(char* data, size_t len) {
96+
HandleScope scope;
97+
98+
Local<Value> arg = Integer::NewFromUnsigned(len);
99+
Local<Object> obj = constructor_template->GetFunction()->NewInstance(1, &arg);
100+
101+
Buffer *buffer = ObjectWrap::Unwrap<Buffer>(obj);
102+
103+
memcpy(buffer->data_, data, len);
104+
}
105+
106+
95107
char* Buffer::Data(Handle<Object> obj) {
96108
if (obj->HasIndexedPropertiesInPixelData()) {
97109
return (char*)obj->GetIndexedPropertiesPixelData();

src/node_buffer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class Buffer : public ObjectWrap {
3535

3636
static void Initialize(v8::Handle<v8::Object> target);
3737
static Buffer* New(size_t length); // public constructor
38+
static Buffer* New(char *data, size_t len); // public constructor
3839
static bool HasInstance(v8::Handle<v8::Value> val);
3940

4041
static char* Data(v8::Handle<v8::Object>);

0 commit comments

Comments
 (0)