Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/base_object.h1
-rw-r--r--src/env.h1
-rw-r--r--src/handle_wrap.h2
-rw-r--r--src/node_postmortem_metadata.cc54
-rw-r--r--src/req_wrap.h1
-rw-r--r--src/util.h2
6 files changed, 7 insertions, 54 deletions
diff --git a/src/base_object.h b/src/base_object.h
index 5852f764066..965683d029e 100644
--- a/src/base_object.h
+++ b/src/base_object.h
@@ -70,6 +70,7 @@ class BaseObject {
// offsets and generate debug symbols for BaseObject, which assumes that the
// position of members in memory are predictable. For more information please
// refer to `doc/guides/node-postmortem-support.md`
+ friend int GenDebugSymbols();
v8::Persistent<v8::Object> persistent_handle_;
Environment* env_;
};
diff --git a/src/env.h b/src/env.h
index 95548c0900e..0c3cfe2cedc 100644
--- a/src/env.h
+++ b/src/env.h
@@ -782,6 +782,7 @@ class Environment {
// symbols for Environment, which assumes that the position of members in
// memory are predictable. For more information please refer to
// `doc/guides/node-postmortem-support.md`
+ friend int GenDebugSymbols();
HandleWrapQueue handle_wrap_queue_;
ReqWrapQueue req_wrap_queue_;
ListHead<HandleCleanup,
diff --git a/src/handle_wrap.h b/src/handle_wrap.h
index 1cfe3e2ebb4..19fd36891a2 100644
--- a/src/handle_wrap.h
+++ b/src/handle_wrap.h
@@ -81,11 +81,13 @@ class HandleWrap : public AsyncWrap {
friend class Environment;
friend void GetActiveHandles(const v8::FunctionCallbackInfo<v8::Value>&);
static void OnClose(uv_handle_t* handle);
+
// handle_wrap_queue_ needs to be at a fixed offset from the start of the
// class because it is used by src/node_postmortem_metadata.cc to calculate
// offsets and generate debug symbols for HandleWrap, which assumes that the
// position of members in memory are predictable. For more information please
// refer to `doc/guides/node-postmortem-support.md`
+ friend int GenDebugSymbols();
ListNode<HandleWrap> handle_wrap_queue_;
enum { kInitialized, kClosing, kClosingWithCallback, kClosed } state_;
uv_handle_t* const handle_;
diff --git a/src/node_postmortem_metadata.cc b/src/node_postmortem_metadata.cc
index 4a463958f54..b335e7fbf81 100644
--- a/src/node_postmortem_metadata.cc
+++ b/src/node_postmortem_metadata.cc
@@ -1,57 +1,3 @@
-// Need to import standard headers before redefining private, otherwise it
-// won't compile.
-#include <algorithm>
-#include <array>
-#include <atomic>
-#include <bitset>
-#include <cctype>
-#include <climits>
-#include <cmath>
-#include <cstdarg>
-#include <cstddef>
-#include <cstdint>
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-#include <ctime>
-#include <deque>
-#include <exception>
-#include <forward_list>
-#include <fstream>
-#include <functional>
-#include <iomanip>
-#include <iosfwd>
-#include <iostream>
-#include <istream>
-#include <iterator>
-#include <limits>
-#include <list>
-#include <map>
-#include <memory>
-#include <new>
-#include <ostream>
-#include <queue>
-#include <set>
-#include <sstream>
-#include <stack>
-#include <streambuf>
-#include <string>
-#include <tuple>
-#include <type_traits>
-#include <typeinfo>
-#include <unordered_map>
-#include <unordered_set>
-#include <utility>
-#include <vector>
-
-namespace node {
-// Forward declaration needed before redefining private.
-int GenDebugSymbols();
-} // namespace node
-
-
-#define private friend int GenDebugSymbols(); private
-
#include "env.h"
#include "base_object-inl.h"
#include "handle_wrap.h"
diff --git a/src/req_wrap.h b/src/req_wrap.h
index 05bc558570a..ddd0840aad2 100644
--- a/src/req_wrap.h
+++ b/src/req_wrap.h
@@ -22,6 +22,7 @@ class ReqWrap : public AsyncWrap {
private:
friend class Environment;
+ friend int GenDebugSymbols();
ListNode<ReqWrap> req_wrap_queue_;
protected:
diff --git a/src/util.h b/src/util.h
index 47bdf27c307..21c566a4ca6 100644
--- a/src/util.h
+++ b/src/util.h
@@ -159,6 +159,7 @@ class ListNode {
private:
template <typename U, ListNode<U> (U::*M)> friend class ListHead;
+ friend int GenDebugSymbols();
ListNode* prev_;
ListNode* next_;
DISALLOW_COPY_AND_ASSIGN(ListNode);
@@ -189,6 +190,7 @@ class ListHead {
inline Iterator end() const;
private:
+ friend int GenDebugSymbols();
ListNode<T> head_;
DISALLOW_COPY_AND_ASSIGN(ListHead);
};