[heap,api] Remove deprecated APIs
Bug: chromium:923361, v8:8834 Change-Id: I6ec42aeb74bea5c0629fcdc3f95c125f5de534a0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526195 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60289}
This commit is contained in:
parent
1c1545401f
commit
f4b860d9b8
@ -164,7 +164,6 @@ class Internals {
|
||||
static const int kNodeStateMask = 0x7;
|
||||
static const int kNodeStateIsWeakValue = 2;
|
||||
static const int kNodeStateIsPendingValue = 3;
|
||||
static const int kNodeStateIsNearDeathValue = 4;
|
||||
static const int kNodeIsIndependentShift = 3;
|
||||
static const int kNodeIsActiveShift = 4;
|
||||
|
||||
|
26
include/v8.h
26
include/v8.h
@ -576,10 +576,6 @@ template <class T> class PersistentBase {
|
||||
|
||||
V8_DEPRECATED("See MarkIndependent.", V8_INLINE bool IsIndependent() const);
|
||||
|
||||
/** Checks if the handle holds the only reference to an object. */
|
||||
V8_DEPRECATED("Garbage collection internal state should not be relied on.",
|
||||
V8_INLINE bool IsNearDeath() const);
|
||||
|
||||
/** Returns true if the handle's reference is weak. */
|
||||
V8_INLINE bool IsWeak() const;
|
||||
|
||||
@ -8520,17 +8516,6 @@ class V8_EXPORT Isolate {
|
||||
*/
|
||||
void VisitHandlesWithClassIds(PersistentHandleVisitor* visitor);
|
||||
|
||||
/**
|
||||
* Iterates through all the persistent handles in the current isolate's heap
|
||||
* that have class_ids and are candidates to be marked as partially dependent
|
||||
* handles. This will visit handles to young objects created since the last
|
||||
* garbage collection but is free to visit an arbitrary superset of these
|
||||
* objects.
|
||||
*/
|
||||
V8_DEPRECATED(
|
||||
"Use VisitHandlesWithClassIds",
|
||||
void VisitHandlesForPartialDependence(PersistentHandleVisitor* visitor));
|
||||
|
||||
/**
|
||||
* Iterates through all the persistent handles in the current isolate's heap
|
||||
* that have class_ids and are weak to be marked as inactive if there is no
|
||||
@ -9784,17 +9769,6 @@ bool PersistentBase<T>::IsIndependent() const {
|
||||
I::kNodeIsIndependentShift);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
bool PersistentBase<T>::IsNearDeath() const {
|
||||
typedef internal::Internals I;
|
||||
if (this->IsEmpty()) return false;
|
||||
uint8_t node_state =
|
||||
I::GetNodeState(reinterpret_cast<internal::Address*>(this->val_));
|
||||
return node_state == I::kNodeStateIsNearDeathValue ||
|
||||
node_state == I::kNodeStateIsPendingValue;
|
||||
}
|
||||
|
||||
|
||||
template <class T>
|
||||
bool PersistentBase<T>::IsWeak() const {
|
||||
typedef internal::Internals I;
|
||||
|
@ -8881,15 +8881,6 @@ void Isolate::VisitHandlesWithClassIds(PersistentHandleVisitor* visitor) {
|
||||
isolate->global_handles()->IterateAllRootsWithClassIds(visitor);
|
||||
}
|
||||
|
||||
|
||||
void Isolate::VisitHandlesForPartialDependence(
|
||||
PersistentHandleVisitor* visitor) {
|
||||
i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
|
||||
i::DisallowHeapAllocation no_allocation;
|
||||
isolate->global_handles()->IterateAllYoungRootsWithClassIds(visitor);
|
||||
}
|
||||
|
||||
|
||||
void Isolate::VisitWeakHandles(PersistentHandleVisitor* visitor) {
|
||||
i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
|
||||
i::DisallowHeapAllocation no_allocation;
|
||||
|
@ -379,7 +379,6 @@ class GlobalHandles::Node final : public NodeBase<GlobalHandles::Node> {
|
||||
Internals::kNodeStateMask);
|
||||
STATIC_ASSERT(WEAK == Internals::kNodeStateIsWeakValue);
|
||||
STATIC_ASSERT(PENDING == Internals::kNodeStateIsPendingValue);
|
||||
STATIC_ASSERT(NEAR_DEATH == Internals::kNodeStateIsNearDeathValue);
|
||||
STATIC_ASSERT(static_cast<int>(IsIndependent::kShift) ==
|
||||
Internals::kNodeIsIndependentShift);
|
||||
STATIC_ASSERT(static_cast<int>(IsActive::kShift) ==
|
||||
@ -427,11 +426,6 @@ class GlobalHandles::Node final : public NodeBase<GlobalHandles::Node> {
|
||||
flags_ = NodeWeaknessType::update(flags_, weakness_type);
|
||||
}
|
||||
|
||||
bool IsNearDeath() const {
|
||||
// Check for PENDING to ensure correct answer when processing callbacks.
|
||||
return state() == PENDING || state() == NEAR_DEATH;
|
||||
}
|
||||
|
||||
bool IsWeak() const { return state() == WEAK; }
|
||||
|
||||
bool IsInUse() const { return state() != FREE; }
|
||||
@ -819,10 +813,6 @@ void GlobalHandles::AnnotateStrongRetainer(Address* location,
|
||||
Node::FromLocation(location)->AnnotateStrongRetainer(label);
|
||||
}
|
||||
|
||||
bool GlobalHandles::IsNearDeath(Address* location) {
|
||||
return Node::FromLocation(location)->IsNearDeath();
|
||||
}
|
||||
|
||||
bool GlobalHandles::IsWeak(Address* location) {
|
||||
return Node::FromLocation(location)->IsWeak();
|
||||
}
|
||||
|
@ -73,9 +73,6 @@ class GlobalHandles final {
|
||||
// Clear the weakness of a global handle.
|
||||
static void* ClearWeakness(Address* location);
|
||||
|
||||
// Tells whether global handle is near death.
|
||||
static bool IsNearDeath(Address* location);
|
||||
|
||||
// Tells whether global handle is weak.
|
||||
static bool IsWeak(Address* location);
|
||||
|
||||
|
@ -531,14 +531,9 @@ TEST(WeakGlobalHandlesScavenge) {
|
||||
|
||||
// Scavenge treats weak pointers as normal roots.
|
||||
CcTest::CollectGarbage(NEW_SPACE);
|
||||
|
||||
CHECK((*h1)->IsString());
|
||||
CHECK((*h2)->IsHeapNumber());
|
||||
|
||||
CHECK(!WeakPointerCleared);
|
||||
CHECK(!global_handles->IsNearDeath(h2.location()));
|
||||
CHECK(!global_handles->IsNearDeath(h1.location()));
|
||||
|
||||
GlobalHandles::Destroy(h1.location());
|
||||
GlobalHandles::Destroy(h2.location());
|
||||
}
|
||||
@ -576,11 +571,8 @@ TEST(WeakGlobalUnmodifiedApiHandlesScavenge) {
|
||||
&TestWeakGlobalHandleCallback, v8::WeakCallbackType::kParameter);
|
||||
|
||||
CcTest::CollectGarbage(NEW_SPACE);
|
||||
|
||||
CHECK((*h1)->IsHeapNumber());
|
||||
CHECK(WeakPointerCleared);
|
||||
CHECK(!global_handles->IsNearDeath(h1.location()));
|
||||
|
||||
GlobalHandles::Destroy(h1.location());
|
||||
}
|
||||
|
||||
@ -617,10 +609,7 @@ TEST(WeakGlobalApiHandleModifiedMapScavenge) {
|
||||
&TestWeakGlobalHandleCallback, v8::WeakCallbackType::kParameter);
|
||||
|
||||
CcTest::CollectGarbage(NEW_SPACE);
|
||||
|
||||
CHECK(!WeakPointerCleared);
|
||||
CHECK(!global_handles->IsNearDeath(h1.location()));
|
||||
|
||||
GlobalHandles::Destroy(h1.location());
|
||||
}
|
||||
|
||||
@ -661,10 +650,7 @@ TEST(WeakGlobalApiHandleWithElementsScavenge) {
|
||||
&TestWeakGlobalHandleCallback, v8::WeakCallbackType::kParameter);
|
||||
|
||||
CcTest::CollectGarbage(NEW_SPACE);
|
||||
|
||||
CHECK(!WeakPointerCleared);
|
||||
CHECK(!global_handles->IsNearDeath(h1.location()));
|
||||
|
||||
GlobalHandles::Destroy(h1.location());
|
||||
}
|
||||
|
||||
@ -699,17 +685,11 @@ TEST(WeakGlobalHandlesMark) {
|
||||
GlobalHandles::MakeWeak(
|
||||
h2.location(), reinterpret_cast<void*>(&handle_and_id),
|
||||
&TestWeakGlobalHandleCallback, v8::WeakCallbackType::kParameter);
|
||||
CHECK(!GlobalHandles::IsNearDeath(h1.location()));
|
||||
CHECK(!GlobalHandles::IsNearDeath(h2.location()));
|
||||
|
||||
// Incremental marking potentially marked handles before they turned weak.
|
||||
CcTest::CollectAllGarbage();
|
||||
|
||||
CHECK((*h1)->IsString());
|
||||
|
||||
CHECK(WeakPointerCleared);
|
||||
CHECK(!GlobalHandles::IsNearDeath(h1.location()));
|
||||
|
||||
GlobalHandles::Destroy(h1.location());
|
||||
}
|
||||
|
||||
|
@ -20472,43 +20472,6 @@ TEST(WrapperClassId) {
|
||||
object.Reset();
|
||||
}
|
||||
|
||||
|
||||
TEST(PersistentHandleInNewSpaceVisitor) {
|
||||
LocalContext context;
|
||||
v8::Isolate* isolate = context->GetIsolate();
|
||||
v8::HandleScope scope(isolate);
|
||||
v8::Persistent<v8::Object> object1(isolate, v8::Object::New(isolate));
|
||||
CHECK_EQ(0, object1.WrapperClassId());
|
||||
object1.SetWrapperClassId(42);
|
||||
CHECK_EQ(42, object1.WrapperClassId());
|
||||
|
||||
CcTest::CollectAllGarbage();
|
||||
CcTest::CollectAllGarbage();
|
||||
|
||||
v8::Persistent<v8::Object> object2(isolate, v8::Object::New(isolate));
|
||||
CHECK_EQ(0, object2.WrapperClassId());
|
||||
object2.SetWrapperClassId(42);
|
||||
CHECK_EQ(42, object2.WrapperClassId());
|
||||
|
||||
Visitor42 visitor(&object2);
|
||||
#if __clang__
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wdeprecated"
|
||||
#endif
|
||||
// VisitHandlesForPartialDependence is marked deprecated. This test will be
|
||||
// removed with the API method.
|
||||
isolate->VisitHandlesForPartialDependence(&visitor);
|
||||
#if __clang__
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
|
||||
CHECK_EQ(1, visitor.counter_);
|
||||
|
||||
object1.Reset();
|
||||
object2.Reset();
|
||||
}
|
||||
|
||||
|
||||
TEST(RegExp) {
|
||||
LocalContext context;
|
||||
v8::HandleScope scope(context->GetIsolate());
|
||||
|
Loading…
Reference in New Issue
Block a user