Prefer type NativeContext over Context in more places

Change-Id: Ie0f54dd36a7af9503306d756182d98fc2273b48a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690828
Auto-Submit: Georg Neis <neis@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62558}
This commit is contained in:
Georg Neis 2019-07-08 12:56:21 +02:00 committed by Commit Bot
parent bda32bcbd0
commit 6786707fb7
6 changed files with 28 additions and 37 deletions

View File

@ -159,7 +159,7 @@ Code Deoptimizer::FindDeoptimizingCode(Address addr) {
if (function_.IsHeapObject()) {
// Search all deoptimizing code in the native context of the function.
Isolate* isolate = isolate_;
Context native_context = function_.context().native_context();
NativeContext native_context = function_.context().native_context();
Object element = native_context.DeoptimizedCodeListHead();
while (!element.IsUndefined(isolate)) {
Code code = Code::cast(element);
@ -590,7 +590,7 @@ int Deoptimizer::GetDeoptimizedCodeCount(Isolate* isolate) {
// Count all entries in the deoptimizing code list of every context.
Object context = isolate->heap()->native_contexts_list();
while (!context.IsUndefined(isolate)) {
Context native_context = Context::cast(context);
NativeContext native_context = NativeContext::cast(context);
Object element = native_context.DeoptimizedCodeListHead();
while (!element.IsUndefined(isolate)) {
Code code = Code::cast(element);

View File

@ -343,7 +343,7 @@ void Bootstrapper::LogAllMaps() {
void Bootstrapper::DetachGlobal(Handle<Context> env) {
isolate_->counters()->errors_thrown_per_context()->AddSample(
env->GetErrorsThrown());
env->native_context().GetErrorsThrown());
ReadOnlyRoots roots(isolate_);
Handle<JSGlobalProxy> global_proxy(env->global_proxy(), isolate_);

View File

@ -352,7 +352,8 @@ bool Code::Inlines(SharedFunctionInfo sfi) {
Code::OptimizedCodeIterator::OptimizedCodeIterator(Isolate* isolate) {
isolate_ = isolate;
Object list = isolate->heap()->native_contexts_list();
next_context_ = list.IsUndefined(isolate_) ? Context() : Context::cast(list);
next_context_ =
list.IsUndefined(isolate_) ? NativeContext() : NativeContext::cast(list);
}
Code Code::OptimizedCodeIterator::Next() {
@ -366,8 +367,8 @@ Code Code::OptimizedCodeIterator::Next() {
next = next_context_.OptimizedCodeListHead();
Object next_context = next_context_.next_context_link();
next_context_ = next_context.IsUndefined(isolate_)
? Context()
: Context::cast(next_context);
? NativeContext()
: NativeContext::cast(next_context);
} else {
// Exhausted contexts.
return Code();

View File

@ -476,7 +476,7 @@ class Code::OptimizedCodeIterator {
Code Next();
private:
Context next_context_;
NativeContext next_context_;
Code current_code_;
Isolate* isolate_;

View File

@ -396,31 +396,26 @@ Handle<Object> Context::Lookup(Handle<Context> context, Handle<String> name,
return Handle<Object>::null();
}
void Context::AddOptimizedCode(Code code) {
DCHECK(IsNativeContext());
void NativeContext::AddOptimizedCode(Code code) {
DCHECK(code.kind() == Code::OPTIMIZED_FUNCTION);
DCHECK(code.next_code_link().IsUndefined());
code.set_next_code_link(get(OPTIMIZED_CODE_LIST));
set(OPTIMIZED_CODE_LIST, code, UPDATE_WEAK_WRITE_BARRIER);
}
void Context::SetOptimizedCodeListHead(Object head) {
DCHECK(IsNativeContext());
void NativeContext::SetOptimizedCodeListHead(Object head) {
set(OPTIMIZED_CODE_LIST, head, UPDATE_WEAK_WRITE_BARRIER);
}
Object Context::OptimizedCodeListHead() {
DCHECK(IsNativeContext());
Object NativeContext::OptimizedCodeListHead() {
return get(OPTIMIZED_CODE_LIST);
}
void Context::SetDeoptimizedCodeListHead(Object head) {
DCHECK(IsNativeContext());
void NativeContext::SetDeoptimizedCodeListHead(Object head) {
set(DEOPTIMIZED_CODE_LIST, head, UPDATE_WEAK_WRITE_BARRIER);
}
Object Context::DeoptimizedCodeListHead() {
DCHECK(IsNativeContext());
Object NativeContext::DeoptimizedCodeListHead() {
return get(DEOPTIMIZED_CODE_LIST);
}
@ -476,19 +471,14 @@ bool Context::IsBootstrappingOrValidParentContext(Object object,
#endif
void Context::ResetErrorsThrown() {
DCHECK(IsNativeContext());
set_errors_thrown(Smi::FromInt(0));
}
void Context::IncrementErrorsThrown() {
DCHECK(IsNativeContext());
void NativeContext::ResetErrorsThrown() { set_errors_thrown(Smi::FromInt(0)); }
void NativeContext::IncrementErrorsThrown() {
int previous_value = errors_thrown().value();
set_errors_thrown(Smi::FromInt(previous_value + 1));
}
int Context::GetErrorsThrown() { return errors_thrown().value(); }
int NativeContext::GetErrorsThrown() { return errors_thrown().value(); }
STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == 4);
STATIC_ASSERT(NativeContext::kScopeInfoOffset ==

View File

@ -534,10 +534,6 @@ class Context : public HeapObject {
static const int kNoContext = 0;
static const int kInvalidContext = 1;
void ResetErrorsThrown();
void IncrementErrorsThrown();
int GetErrorsThrown();
// Direct slot access.
inline void set_scope_info(ScopeInfo scope_info);
@ -594,14 +590,6 @@ class Context : public HeapObject {
inline bool HasSameSecurityTokenAs(Context that) const;
// The native context also stores a list of all optimized code and a
// list of all deoptimized code, which are needed by the deoptimizer.
V8_EXPORT_PRIVATE void AddOptimizedCode(Code code);
void SetOptimizedCodeListHead(Object head);
Object OptimizedCodeListHead();
void SetDeoptimizedCodeListHead(Object head);
Object DeoptimizedCodeListHead();
Handle<Object> ErrorMessageForCodeGenerationFromStrings();
static int IntrinsicIndexForName(Handle<String> name);
@ -706,6 +694,18 @@ class NativeContext : public Context {
class BodyDescriptor;
// The native context stores a list of all optimized code and a list of all
// deoptimized code, which are needed by the deoptimizer.
V8_EXPORT_PRIVATE void AddOptimizedCode(Code code);
void SetOptimizedCodeListHead(Object head);
Object OptimizedCodeListHead();
void SetDeoptimizedCodeListHead(Object head);
Object DeoptimizedCodeListHead();
void ResetErrorsThrown();
void IncrementErrorsThrown();
int GetErrorsThrown();
private:
STATIC_ASSERT(OffsetOfElementAt(EMBEDDER_DATA_INDEX) ==
Internals::kNativeContextEmbedderDataOffset);