buffer: proper API export for Windows
So that Windows users can properly include smalloc and node_buffer, NODE_EXTERN was added to the headers that export this functionality.
This commit is contained in:
parent
4b40358841
commit
7373c4ddb7
@ -19,6 +19,7 @@
|
|||||||
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||||||
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
#include "node.h"
|
||||||
#include "smalloc.h"
|
#include "smalloc.h"
|
||||||
#include "v8.h"
|
#include "v8.h"
|
||||||
|
|
||||||
@ -31,29 +32,29 @@ namespace Buffer {
|
|||||||
|
|
||||||
static const unsigned int kMaxLength = smalloc::kMaxLength;
|
static const unsigned int kMaxLength = smalloc::kMaxLength;
|
||||||
|
|
||||||
bool HasInstance(v8::Handle<v8::Value> val);
|
NODE_EXTERN bool HasInstance(v8::Handle<v8::Value> val);
|
||||||
bool HasInstance(v8::Handle<v8::Object> val);
|
NODE_EXTERN bool HasInstance(v8::Handle<v8::Object> val);
|
||||||
char* Data(v8::Handle<v8::Value> val);
|
NODE_EXTERN char* Data(v8::Handle<v8::Value> val);
|
||||||
char* Data(v8::Handle<v8::Object> val);
|
NODE_EXTERN char* Data(v8::Handle<v8::Object> val);
|
||||||
size_t Length(v8::Handle<v8::Value> val);
|
NODE_EXTERN size_t Length(v8::Handle<v8::Value> val);
|
||||||
size_t Length(v8::Handle<v8::Object> val);
|
NODE_EXTERN size_t Length(v8::Handle<v8::Object> val);
|
||||||
|
|
||||||
// public constructor
|
// public constructor
|
||||||
v8::Local<v8::Object> New(size_t length);
|
NODE_EXTERN v8::Local<v8::Object> New(size_t length);
|
||||||
// public constructor from string
|
// public constructor from string
|
||||||
v8::Local<v8::Object> New(v8::Handle<v8::String> string);
|
NODE_EXTERN v8::Local<v8::Object> New(v8::Handle<v8::String> string);
|
||||||
// public constructor - data is copied
|
// public constructor - data is copied
|
||||||
// TODO(trevnorris): should be something like Copy()
|
// TODO(trevnorris): should be something like Copy()
|
||||||
v8::Local<v8::Object> New(const char* data, size_t len);
|
NODE_EXTERN v8::Local<v8::Object> New(const char* data, size_t len);
|
||||||
// public constructor - data is used, callback is passed data on object gc
|
// public constructor - data is used, callback is passed data on object gc
|
||||||
v8::Local<v8::Object> New(char* data,
|
NODE_EXTERN v8::Local<v8::Object> New(char* data,
|
||||||
size_t length,
|
size_t length,
|
||||||
smalloc::FreeCallback callback,
|
smalloc::FreeCallback callback,
|
||||||
void* hint);
|
void* hint);
|
||||||
|
|
||||||
// public constructor - data is used.
|
// public constructor - data is used.
|
||||||
// TODO(trevnorris): should be New() for consistency
|
// TODO(trevnorris): should be New() for consistency
|
||||||
v8::Local<v8::Object> Use(char* data, uint32_t len);
|
NODE_EXTERN v8::Local<v8::Object> Use(char* data, uint32_t len);
|
||||||
|
|
||||||
} // namespace Buffer
|
} // namespace Buffer
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#ifndef NODE_SMALLOC_H_
|
#ifndef NODE_SMALLOC_H_
|
||||||
#define NODE_SMALLOC_H_
|
#define NODE_SMALLOC_H_
|
||||||
|
|
||||||
|
#include "node.h"
|
||||||
#include "v8.h"
|
#include "v8.h"
|
||||||
|
|
||||||
namespace node {
|
namespace node {
|
||||||
@ -38,29 +39,29 @@ namespace smalloc {
|
|||||||
// mirrors deps/v8/src/objects.h
|
// mirrors deps/v8/src/objects.h
|
||||||
static const unsigned int kMaxLength = 0x3fffffff;
|
static const unsigned int kMaxLength = 0x3fffffff;
|
||||||
|
|
||||||
typedef void (*FreeCallback)(char* data, void* hint);
|
NODE_EXTERN typedef void (*FreeCallback)(char* data, void* hint);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allocate external memory and set to passed object. If data is passed then
|
* Allocate external memory and set to passed object. If data is passed then
|
||||||
* will use that instead of allocating new.
|
* will use that instead of allocating new.
|
||||||
*/
|
*/
|
||||||
void Alloc(v8::Handle<v8::Object> obj, size_t length);
|
NODE_EXTERN void Alloc(v8::Handle<v8::Object> obj, size_t length);
|
||||||
void Alloc(v8::Handle<v8::Object> obj, char* data, size_t length);
|
NODE_EXTERN void Alloc(v8::Handle<v8::Object> obj, char* data, size_t length);
|
||||||
void Alloc(v8::Handle<v8::Object> obj,
|
NODE_EXTERN void Alloc(v8::Handle<v8::Object> obj,
|
||||||
size_t length,
|
size_t length,
|
||||||
FreeCallback fn,
|
FreeCallback fn,
|
||||||
void* hint);
|
void* hint);
|
||||||
void Alloc(v8::Handle<v8::Object> obj,
|
NODE_EXTERN void Alloc(v8::Handle<v8::Object> obj,
|
||||||
char* data,
|
char* data,
|
||||||
size_t length,
|
size_t length,
|
||||||
FreeCallback fn,
|
FreeCallback fn,
|
||||||
void* hint);
|
void* hint);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Free memory associated with an externally allocated object. If no external
|
* Free memory associated with an externally allocated object. If no external
|
||||||
* memory is allocated to the object then nothing will happen.
|
* memory is allocated to the object then nothing will happen.
|
||||||
*/
|
*/
|
||||||
void AllocDispose(v8::Handle<v8::Object> obj);
|
NODE_EXTERN void AllocDispose(v8::Handle<v8::Object> obj);
|
||||||
|
|
||||||
} // namespace smalloc
|
} // namespace smalloc
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user