File tree Expand file tree Collapse file tree 2 files changed +11
-5
lines changed
Expand file tree Collapse file tree 2 files changed +11
-5
lines changed Original file line number Diff line number Diff line change @@ -137,14 +137,14 @@ Buffer* Buffer::New(size_t length) {
137137}
138138
139139
140- Buffer* Buffer::New (char * data, size_t length) {
140+ Buffer* Buffer::New (const char * data, size_t length) {
141141 HandleScope scope;
142142
143143 Local<Value> arg = Integer::NewFromUnsigned (0 );
144144 Local<Object> obj = constructor_template->GetFunction ()->NewInstance (1 , &arg);
145145
146146 Buffer *buffer = ObjectWrap::Unwrap<Buffer>(obj);
147- buffer->Replace (data, length, NULL , NULL );
147+ buffer->Replace (const_cast < char *>( data) , length, NULL , NULL );
148148
149149 return buffer;
150150}
@@ -198,6 +198,8 @@ Buffer::~Buffer() {
198198}
199199
200200
201+ // if replace doesn't have a callback, data must be copied
202+ // const_cast in Buffer::New requires this
201203void Buffer::Replace (char *data, size_t length,
202204 free_callback callback, void *hint) {
203205 HandleScope scope;
Original file line number Diff line number Diff line change @@ -102,10 +102,14 @@ class NODE_EXTERN Buffer: public ObjectWrap {
102102 static v8::Handle<v8::Object> New (v8::Handle<v8::String> string);
103103
104104 static void Initialize (v8::Handle<v8::Object> target);
105- static Buffer* New (size_t length); // public constructor
106- static Buffer* New (char *data, size_t len); // public constructor
105+
106+ // public constructor
107+ static Buffer* New (size_t length);
108+ // public constructor - data is copied
109+ static Buffer* New (const char *data, size_t len);
110+ // public constructor
107111 static Buffer* New (char *data, size_t length,
108- free_callback callback, void *hint); // public constructor
112+ free_callback callback, void *hint);
109113
110114 private:
111115 static v8::Handle<v8::Value> New (const v8::Arguments &args);
You can’t perform that action at this time.
0 commit comments