ネームスペース | マクロ定義

src/heap-inl.h

#include "log.h"
#include "v8-counters.h"

ソースコードを見る。

ネームスペース

namespace  v8
namespace  v8::internal

マクロ定義

#define GC_GREEDY_CHECK()   ASSERT(!FLAG_gc_greedy || v8::internal::Heap::GarbageCollectionGreedyCheck())
#define CALL_AND_RETRY(FUNCTION_CALL, RETURN_VALUE, RETURN_EMPTY)
#define CALL_HEAP_FUNCTION(FUNCTION_CALL, TYPE)
#define CALL_HEAP_FUNCTION_VOID(FUNCTION_CALL)   CALL_AND_RETRY(FUNCTION_CALL, , )

マクロ定義

#define CALL_AND_RETRY (   FUNCTION_CALL,
  RETURN_VALUE,
  RETURN_EMPTY 
)
値:
do {                                                                    \
    GC_GREEDY_CHECK();                                                    \
    Object* __object__ = FUNCTION_CALL;                                   \
    if (!__object__->IsFailure()) return RETURN_VALUE;                    \
    if (__object__->IsOutOfMemoryFailure()) {                             \
      v8::internal::V8::FatalProcessOutOfMemory("CALL_AND_RETRY_0");      \
    }                                                                     \
    if (!__object__->IsRetryAfterGC()) return RETURN_EMPTY;               \
    Heap::CollectGarbage(Failure::cast(__object__)->requested(),          \
                         Failure::cast(__object__)->allocation_space());  \
    __object__ = FUNCTION_CALL;                                           \
    if (!__object__->IsFailure()) return RETURN_VALUE;                    \
    if (__object__->IsOutOfMemoryFailure()) {                             \
      v8::internal::V8::FatalProcessOutOfMemory("CALL_AND_RETRY_1");      \
    }                                                                     \
    if (!__object__->IsRetryAfterGC()) return RETURN_EMPTY;               \
    Counters::gc_last_resort_from_handles.Increment();                    \
    Heap::CollectAllGarbage();                                            \
    {                                                                     \
      AlwaysAllocateScope __scope__;                                      \
      __object__ = FUNCTION_CALL;                                         \
    }                                                                     \
    if (!__object__->IsFailure()) return RETURN_VALUE;                    \
    if (__object__->IsOutOfMemoryFailure()) {                             \
      /* TODO(1181417): Fix this. */                                      \
      v8::internal::V8::FatalProcessOutOfMemory("CALL_AND_RETRY_2");      \
    }                                                                     \
    ASSERT(!__object__->IsRetryAfterGC());                                \
    return RETURN_EMPTY;                                                  \
  } while (false)

heap-inl.h216 行で定義されています。

#define CALL_HEAP_FUNCTION (   FUNCTION_CALL,
  TYPE 
)
値:
CALL_AND_RETRY(FUNCTION_CALL,                         \
                 Handle<TYPE>(TYPE::cast(__object__)),  \
                 Handle<TYPE>())

heap-inl.h249 行で定義されています。

参照元 v8::internal::AddKeysFromJSArray(), v8::internal::Factory::AddToMapCache(), v8::internal::AllocateTable(), v8::internal::Factory::BaseNewFunctionFromBoilerplate(), v8::internal::ComputeCallDebugBreak(), v8::internal::ComputeCallDebugPrepareStepIn(), v8::internal::Factory::CopyAppendProxyDescriptor(), v8::internal::Factory::CopyCode(), v8::internal::Factory::CopyFixedArray(), v8::internal::Factory::CopyMap(), v8::internal::Factory::CopyMapDropTransitions(), v8::internal::Factory::DictionaryAtNumberPut(), v8::internal::Factory::LookupSymbol(), v8::internal::Factory::NewArgumentsObject(), v8::internal::Factory::NewByteArray(), v8::internal::Factory::NewCode(), v8::internal::Factory::NewConsString(), v8::internal::Factory::NewDescriptorArray(), v8::internal::Factory::NewDictionary(), v8::internal::Factory::NewExternalStringFromAscii(), v8::internal::Factory::NewExternalStringFromTwoByte(), v8::internal::Factory::NewFixedArray(), v8::internal::Factory::NewFixedArrayWithHoles(), v8::internal::Factory::NewFunctionBoilerplate(), v8::internal::Factory::NewFunctionContext(), v8::internal::Factory::NewFunctionHelper(), v8::internal::Factory::NewFunctionPrototype(), v8::internal::Factory::NewGlobalContext(), v8::internal::Factory::NewJSArray(), v8::internal::Factory::NewJSObject(), v8::internal::Factory::NewJSObjectFromMap(), v8::internal::Factory::NewMap(), v8::internal::Factory::NewMapCache(), v8::internal::Factory::NewNeanderObject(), v8::internal::Factory::NewNumber(), v8::internal::Factory::NewNumberFromInt(), v8::internal::Factory::NewObjectLiteral(), v8::internal::Factory::NewProxy(), v8::internal::Factory::NewRawTwoByteString(), v8::internal::Factory::NewSharedFunctionInfo(), v8::internal::Factory::NewStringFromAscii(), v8::internal::Factory::NewStringFromTwoByte(), v8::internal::Factory::NewStringFromUtf8(), v8::internal::Factory::NewStringSlice(), v8::internal::Factory::NewStruct(), v8::internal::Factory::NewWithContext(), v8::internal::Factory::SymbolFromString(), と v8::internal::Factory::ToObject().

#define CALL_HEAP_FUNCTION_VOID (   FUNCTION_CALL  )     CALL_AND_RETRY(FUNCTION_CALL, , )
#define GC_GREEDY_CHECK (  )     ASSERT(!FLAG_gc_greedy || v8::internal::Heap::GarbageCollectionGreedyCheck())

heap-inl.h205 行で定義されています。

 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義