src: move internal functions out of node_buffer.h
authorBen Noordhuis <info@bnoordhuis.nl>
Thu, 13 Aug 2015 11:29:28 +0000 (13:29 +0200)
committerBen Noordhuis <info@bnoordhuis.nl>
Thu, 13 Aug 2015 18:04:54 +0000 (20:04 +0200)
The circular dependency problem that put them there in the first place
is no longer an issue.  Move them out of the public node_buffer.h header
and into the private node_internals.h header.

Fixes: https://github.com/nodejs/node/issues/2308
PR-URL: https://github.com/nodejs/node/pull/2352
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
src/node_buffer.h
src/node_internals.h

index f7c88f6..49fb574 100644 (file)
@@ -4,10 +4,6 @@
 #include "node.h"
 #include "v8.h"
 
-#if defined(NODE_WANT_INTERNALS)
-#include "env.h"
-#endif  // defined(NODE_WANT_INTERNALS)
-
 namespace node {
 namespace Buffer {
 
@@ -63,24 +59,6 @@ static inline bool IsWithinBounds(size_t off, size_t len, size_t max) {
   return true;
 }
 
-// Internal. Not for public consumption. We can't define these
-// in src/node_internals.h because of a circular dependency.
-#if defined(NODE_WANT_INTERNALS)
-v8::MaybeLocal<v8::Object> New(Environment* env, size_t size);
-// Makes a copy of |data|.
-v8::MaybeLocal<v8::Object> New(Environment* env, const char* data, size_t len);
-// Takes ownership of |data|.
-v8::MaybeLocal<v8::Object> New(Environment* env,
-                               char* data,
-                               size_t length,
-                               FreeCallback callback,
-                               void* hint);
-// Takes ownership of |data|.  Must allocate |data| with malloc() or realloc()
-// because ArrayBufferAllocator::Free() deallocates it again with free().
-// Mixing operator new and free() is undefined behavior so don't do that.
-v8::MaybeLocal<v8::Object> Use(Environment* env, char* data, size_t length);
-#endif  // defined(NODE_WANT_INTERNALS)
-
 }  // namespace Buffer
 }  // namespace node
 
index c99b2fe..aa4474b 100644 (file)
@@ -272,6 +272,22 @@ class NodeInstanceData {
     DISALLOW_COPY_AND_ASSIGN(NodeInstanceData);
 };
 
+namespace Buffer {
+v8::MaybeLocal<v8::Object> New(Environment* env, size_t size);
+// Makes a copy of |data|.
+v8::MaybeLocal<v8::Object> New(Environment* env, const char* data, size_t len);
+// Takes ownership of |data|.
+v8::MaybeLocal<v8::Object> New(Environment* env,
+                               char* data,
+                               size_t length,
+                               void (*callback)(char* data, void* hint),
+                               void* hint);
+// Takes ownership of |data|.  Must allocate |data| with malloc() or realloc()
+// because ArrayBufferAllocator::Free() deallocates it again with free().
+// Mixing operator new and free() is undefined behavior so don't do that.
+v8::MaybeLocal<v8::Object> Use(Environment* env, char* data, size_t length);
+}  // namespace Buffer
+
 }  // namespace node
 
 #endif  // SRC_NODE_INTERNALS_H_