src/JavaExceptionTableEntry.st
branchjk_new_structure
changeset 1692 561d5ac3f2df
parent 1155 d6f6d5fc0343
equal deleted inserted replaced
1691:826f8d7dc0df 1692:561d5ac3f2df
   140 
   140 
   141     (pc between:startPC and:endPC - 1) ifTrue:[
   141     (pc between:startPC and:endPC - 1) ifTrue:[
   142         (catchType == 0) ifTrue:[^ handlerPC].
   142         (catchType == 0) ifTrue:[^ handlerPC].
   143         (catchType isNil) ifTrue:[^ handlerPC].
   143         (catchType isNil) ifTrue:[^ handlerPC].
   144         cls := aMethod javaClass.
   144         cls := aMethod javaClass.
   145         catchType := catchType javaClass.
   145         exception notNil ifTrue:[
       
   146             catchType := catchType javaClass.
   146 
   147 
   147         (catchType isKindOf:JavaClass) ifFalse:[
   148             (catchType isKindOf:JavaClass) ifFalse:[
   148             self halt.
   149                 self halt.
       
   150                 ^ nil
       
   151             ].
       
   152             (exception isKindOf:catchType) ifTrue:[
       
   153                 ^ handlerPC
       
   154             ].
   149             ^ nil
   155             ^ nil
   150         ].
   156         ]
   151         (exception isKindOf:catchType) ifTrue:[
       
   152             ^ handlerPC
       
   153         ].
       
   154         ^ nil
       
   155     ].
   157     ].
   156     ^ nil
   158     ^ nil
   157 
   159 
   158     "Modified: / 07-01-1998 / 15:30:14 / cg"
   160     "Modified: / 07-01-1998 / 15:30:14 / cg"
   159     "Modified: / 31-05-2011 / 09:53:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   161     "Modified: / 03-09-2012 / 18:50:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   160 !
   162 !
   161 
   163 
   162 startPC:start_pc endPC:end_pc handlerPC:handler_pc catchType:catch_type
   164 startPC:start_pc endPC:end_pc handlerPC:handler_pc catchType:catch_type
   163     startPC := start_pc.
   165     startPC := start_pc.
   164     endPC := end_pc.
   166     endPC := end_pc.