Sha256: 7416b72f3e983d0d5a991cdeb150060430268b414f036670f92bb9fd60217fbd

Contents?: true

Size: 1.09 KB

Versions: 16

Compression:

Stored size: 1.09 KB

Contents

// Copyright 2020 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef INCLUDE_CPPGC_HEAP_H_
#define INCLUDE_CPPGC_HEAP_H_

#include <memory>

#include "v8config.h"  // NOLINT(build/include_directory)

namespace cppgc {
namespace internal {
class Heap;
}  // namespace internal

class V8_EXPORT Heap {
 public:
  // Normal spaces are used to store objects of different size classes:
  // - kNormal1:  < 32 bytes
  // - kNormal2:  < 64 bytes
  // - kNormal3:  < 128 bytes
  // - kNormal4: >= 128 bytes
  // Objects of size greater than 2^16 get stored in the large space. Users can
  // register up to 4 arenas for application specific needs.
  enum class SpaceType {
    kNormal1,
    kNormal2,
    kNormal3,
    kNormal4,
    kLarge,
    kUserDefined1,
    kUserDefined2,
    kUserDefined3,
    kUserDefined4,
  };

  static std::unique_ptr<Heap> Create();

  virtual ~Heap() = default;

 private:
  Heap() = default;

  friend class internal::Heap;
};

}  // namespace cppgc

#endif  // INCLUDE_CPPGC_HEAP_H_

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
libv8-8.4.255.0.1-x86_64-linux vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0.1-x86_64-darwin vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0.1-universal-darwin vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0-x86_64-darwin-20 vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0-universal-darwin-20 vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0-x86_64-darwin-18 vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0-x86_64-darwin-17 vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0-x86_64-linux vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0-universal-darwin-16 vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0-x86_64-darwin-19 vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0-x86_64-darwin-16 vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0-x86_64-darwin-15 vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0-universal-darwin-19 vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0-universal-darwin-18 vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0-universal-darwin-17 vendor/v8/include/cppgc/heap.h
libv8-8.4.255.0-universal-darwin-15 vendor/v8/include/cppgc/heap.h