Chromium Code Reviews| Index: libstdc++-v3/libsupc++/eh_pnacl.cc | 
| diff --git a/libstdc++-v3/libsupc++/eh_pnacl.cc b/libstdc++-v3/libsupc++/eh_pnacl.cc | 
| index 3cb56aeba8d303c4b9e038c3d1df4a2b9abef1e2..d4bc693dbde9b7f27d02531f3bc48dca3e654ffd 100644 | 
| --- a/libstdc++-v3/libsupc++/eh_pnacl.cc | 
| +++ b/libstdc++-v3/libsupc++/eh_pnacl.cc | 
| @@ -240,10 +240,11 @@ handle_exception (struct _Unwind_Exception *ue_header, bool check_for_catch) | 
| __cxa_exception *xh = __get_exception_header_from_ue (ue_header); | 
| void *obj = __get_object_from_ue (ue_header); | 
| + const std::type_info *throw_type = | 
| + __get_exception_header_from_obj (obj)->exceptionType; | 
| 
 
Derek Schuff
2013/12/02 18:24:09
add a comment here mentioning why this has to be d
 
Mark Seaborn
2013/12/02 18:49:14
Done.
 
 | 
| struct exception_frame *frame; | 
| int32_t clause_id; | 
| - if (find_match (xh->exceptionType, &obj, __pnacl_eh_stack, | 
| - &frame, &clause_id)) | 
| + if (find_match (throw_type, &obj, __pnacl_eh_stack, &frame, &clause_id)) | 
| { | 
| // Check that there is a non-cleanup handler for the exception. | 
| // If not, we should abort before running cleanup handlers | 
| @@ -260,7 +261,7 @@ handle_exception (struct _Unwind_Exception *ue_header, bool check_for_catch) | 
| // called; whether or not the stack is unwound before this call | 
| // to std::terminate() is implementation-defined". | 
| if (check_for_catch && clause_id == 0 && | 
| - !is_exception_caught (xh->exceptionType, obj, frame->next)) | 
| + !is_exception_caught (throw_type, obj, frame->next)) | 
| return; | 
| __pnacl_eh_stack = frame->next; |