Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(450)

Side by Side Diff: src/ia32/stub-cache-ia32.cc

Issue 4293002: Fix converting NULL to Failure bugs introduced in r5698. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. 1 // Copyright 2006-2009 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 887 matching lines...) Expand 10 before | Expand all | Expand 10 after
898 898
899 ASSERT(current->GetPrototype()->IsJSObject()); 899 ASSERT(current->GetPrototype()->IsJSObject());
900 JSObject* prototype = JSObject::cast(current->GetPrototype()); 900 JSObject* prototype = JSObject::cast(current->GetPrototype());
901 if (!current->HasFastProperties() && 901 if (!current->HasFastProperties() &&
902 !current->IsJSGlobalObject() && 902 !current->IsJSGlobalObject() &&
903 !current->IsJSGlobalProxy()) { 903 !current->IsJSGlobalProxy()) {
904 if (!name->IsSymbol()) { 904 if (!name->IsSymbol()) {
905 MaybeObject* maybe_lookup_result = Heap::LookupSymbol(name); 905 MaybeObject* maybe_lookup_result = Heap::LookupSymbol(name);
906 Object* lookup_result = NULL; // Initialization to please compiler. 906 Object* lookup_result = NULL; // Initialization to please compiler.
907 if (!maybe_lookup_result->ToObject(&lookup_result)) { 907 if (!maybe_lookup_result->ToObject(&lookup_result)) {
908 set_failure(Failure::cast(lookup_result)); 908 set_failure(Failure::cast(maybe_lookup_result));
909 return reg; 909 return reg;
910 } 910 }
911 name = String::cast(lookup_result); 911 name = String::cast(lookup_result);
912 } 912 }
913 ASSERT(current->property_dictionary()->FindEntry(name) == 913 ASSERT(current->property_dictionary()->FindEntry(name) ==
914 StringDictionary::kNotFound); 914 StringDictionary::kNotFound);
915 915
916 GenerateDictionaryNegativeLookup(masm(), 916 GenerateDictionaryNegativeLookup(masm(),
917 miss, 917 miss,
918 reg, 918 reg,
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
1070 Address getter_address = v8::ToCData<Address>(callback->getter()); 1070 Address getter_address = v8::ToCData<Address>(callback->getter());
1071 ApiFunction fun(getter_address); 1071 ApiFunction fun(getter_address);
1072 ApiGetterEntryStub stub(callback_handle, &fun); 1072 ApiGetterEntryStub stub(callback_handle, &fun);
1073 // Emitting a stub call may try to allocate (if the code is not 1073 // Emitting a stub call may try to allocate (if the code is not
1074 // already generated). Do not allow the assembler to perform a 1074 // already generated). Do not allow the assembler to perform a
1075 // garbage collection but instead return the allocation failure 1075 // garbage collection but instead return the allocation failure
1076 // object. 1076 // object.
1077 Object* result = NULL; // Initialization to please compiler. 1077 Object* result = NULL; // Initialization to please compiler.
1078 { MaybeObject* try_call_result = masm()->TryCallStub(&stub); 1078 { MaybeObject* try_call_result = masm()->TryCallStub(&stub);
1079 if (!try_call_result->ToObject(&result)) { 1079 if (!try_call_result->ToObject(&result)) {
1080 *failure = Failure::cast(result); 1080 *failure = Failure::cast(try_call_result);
1081 return false; 1081 return false;
1082 } 1082 }
1083 } 1083 }
1084 __ LeaveInternalFrame(); 1084 __ LeaveInternalFrame();
1085 1085
1086 __ ret(0); 1086 __ ret(0);
1087 return true; 1087 return true;
1088 } 1088 }
1089 1089
1090 1090
(...skipping 2007 matching lines...) Expand 10 before | Expand all | Expand 10 after
3098 // Return the generated code. 3098 // Return the generated code.
3099 return GetCode(); 3099 return GetCode();
3100 } 3100 }
3101 3101
3102 3102
3103 #undef __ 3103 #undef __
3104 3104
3105 } } // namespace v8::internal 3105 } } // namespace v8::internal
3106 3106
3107 #endif // V8_TARGET_ARCH_IA32 3107 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698