Reviewers: ulan,
Message:
Committed patchset #1 manually as r21440 (presubmit successful).
Description:
ClearTypeFeedbackInfo() assumed we have a context in the isolate.
Better, is to compare against the context for the JSFunction we are
currently looking at.
[email protected]
Committed: https://code.google.com/p/v8/source/detail?r=21440
Please review this at https://codereview.chromium.org/294903013/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+5, -14 lines):
M src/objects.cc
Index: src/objects.cc
diff --git a/src/objects.cc b/src/objects.cc
index
ddeaacd6b44011e6bd1cfd8ee12e377fa154adc7..5cc06c17d41f4535ebe3ed013061dff68973e8ab
100644
--- a/src/objects.cc
+++ b/src/objects.cc
@@ -11245,19 +11245,6 @@ void Code::ClearInlineCaches(Code::Kind* kind) {
void SharedFunctionInfo::ClearTypeFeedbackInfo() {
FixedArray* vector = feedback_vector();
Heap* heap = GetHeap();
- JSFunction* array_function = NULL;
-
- // Clearing type feedback can be called when the contexts are still being
- // set up so caution is required.
- Context* context = GetIsolate()->context();
- if (context != NULL) {
- Context* native_context = context->native_context();
- Object* candidate = native_context->get(Context::ARRAY_FUNCTION_INDEX);
- if (candidate->IsJSFunction()) {
- array_function = JSFunction::cast(candidate);
- }
- }
-
int length = vector->length();
for (int i = 0; i < length; i++) {
@@ -11272,8 +11259,12 @@ void SharedFunctionInfo::ClearTypeFeedbackInfo() {
break;
case JS_FUNCTION_TYPE:
// No need to clear the native context array function.
- if (obj == array_function) break;
+ if (obj == JSFunction::cast(obj)->context()->native_context()->
+ get(Context::ARRAY_FUNCTION_INDEX)) {
+ break;
+ }
// Fall through...
+
default:
vector->set(i, TypeFeedbackInfo::RawUninitializedSentinel(heap),
SKIP_WRITE_BARRIER);
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.