Reland "[vm] Cleanup unused code in ClosureFunctionsCache"
This is a reland of commit 4c1235caab
The underlying problem is addressed in https://dart-review.googlesource.com/c/sdk/+/262429.
Original change's description:
> [vm] Cleanup unused code in ClosureFunctionsCache
>
> TEST=ci
>
> Change-Id: Ia6f24545c7e2d5b0df81cab52585d17556b36c16
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256363
> Commit-Queue: Ryan Macnak <rmacnak@google.com>
> Reviewed-by: Ryan Macnak <rmacnak@google.com>
> Auto-Submit: Alexander Markov <alexmarkov@google.com>
TEST=ci
Change-Id: I96bd99174e68818ca8024e72836ebd1c99cdecd5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/263141
Reviewed-by: Tess Strickland <sstrickl@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
This commit is contained in:
committed by
Commit Queue
parent
5923b883db
commit
3fa0a2f255
@@ -10,37 +10,6 @@
|
||||
|
||||
namespace dart {
|
||||
|
||||
FunctionPtr ClosureFunctionsCache::LookupClosureFunction(
|
||||
const Class& owner,
|
||||
TokenPosition token_pos) {
|
||||
auto thread = Thread::Current();
|
||||
SafepointReadRwLocker ml(thread, thread->isolate_group()->program_lock());
|
||||
return LookupClosureFunctionLocked(owner, token_pos);
|
||||
}
|
||||
|
||||
FunctionPtr ClosureFunctionsCache::LookupClosureFunctionLocked(
|
||||
const Class& owner,
|
||||
TokenPosition token_pos) {
|
||||
auto thread = Thread::Current();
|
||||
auto zone = thread->zone();
|
||||
auto object_store = thread->isolate_group()->object_store();
|
||||
|
||||
DEBUG_ASSERT(
|
||||
thread->isolate_group()->program_lock()->IsCurrentThreadReader());
|
||||
|
||||
const auto& closures =
|
||||
GrowableObjectArray::Handle(zone, object_store->closure_functions());
|
||||
auto& closure = Function::Handle(zone);
|
||||
intptr_t num_closures = closures.Length();
|
||||
for (intptr_t i = 0; i < num_closures; i++) {
|
||||
closure ^= closures.At(i);
|
||||
if (closure.token_pos() == token_pos && closure.Owner() == owner.ptr()) {
|
||||
return closure.ptr();
|
||||
}
|
||||
}
|
||||
return Function::null();
|
||||
}
|
||||
|
||||
FunctionPtr ClosureFunctionsCache::LookupClosureFunction(
|
||||
const Function& parent,
|
||||
TokenPosition token_pos) {
|
||||
@@ -126,33 +95,6 @@ FunctionPtr ClosureFunctionsCache::ClosureFunctionFromIndex(intptr_t idx) {
|
||||
return Function::RawCast(closures_array.At(idx));
|
||||
}
|
||||
|
||||
FunctionPtr ClosureFunctionsCache::GetUniqueInnerClosure(
|
||||
const Function& outer) {
|
||||
auto thread = Thread::Current();
|
||||
auto zone = thread->zone();
|
||||
auto object_store = thread->isolate_group()->object_store();
|
||||
|
||||
SafepointReadRwLocker ml(thread, thread->isolate_group()->program_lock());
|
||||
|
||||
const auto& closures =
|
||||
GrowableObjectArray::Handle(zone, object_store->closure_functions());
|
||||
auto& entry = Function::Handle(zone);
|
||||
for (intptr_t i = (closures.Length() - 1); i >= 0; i--) {
|
||||
entry ^= closures.At(i);
|
||||
if (entry.parent_function() == outer.ptr()) {
|
||||
#if defined(DEBUG)
|
||||
auto& other = Function::Handle(zone);
|
||||
for (intptr_t j = i - 1; j >= 0; j--) {
|
||||
other ^= closures.At(j);
|
||||
ASSERT(other.parent_function() != outer.ptr());
|
||||
}
|
||||
#endif
|
||||
return entry.ptr();
|
||||
}
|
||||
}
|
||||
return Function::null();
|
||||
}
|
||||
|
||||
void ClosureFunctionsCache::ForAllClosureFunctions(
|
||||
std::function<bool(const Function&)> callback) {
|
||||
auto thread = Thread::Current();
|
||||
|
||||
@@ -39,11 +39,6 @@ class FunctionPtr;
|
||||
// requirements above).
|
||||
class ClosureFunctionsCache : public AllStatic {
|
||||
public:
|
||||
static FunctionPtr LookupClosureFunction(const Class& owner,
|
||||
TokenPosition pos);
|
||||
static FunctionPtr LookupClosureFunctionLocked(const Class& owner,
|
||||
TokenPosition pos);
|
||||
|
||||
static FunctionPtr LookupClosureFunction(const Function& parent,
|
||||
TokenPosition token_pos);
|
||||
static FunctionPtr LookupClosureFunctionLocked(const Function& parent,
|
||||
@@ -60,8 +55,6 @@ class ClosureFunctionsCache : public AllStatic {
|
||||
static intptr_t FindClosureIndex(const Function& needle);
|
||||
static FunctionPtr ClosureFunctionFromIndex(intptr_t idx);
|
||||
|
||||
static FunctionPtr GetUniqueInnerClosure(const Function& outer);
|
||||
|
||||
// Visits all closure functions registered in the object store.
|
||||
//
|
||||
// Iterates in-order, thereby allowing new closures being added during the
|
||||
|
||||
Reference in New Issue
Block a user