Construct CallCompiledObjectMethodPosArgsVariable

Performance Diagrams

Construct CallCompiledObjectMethodPosArgsVariable 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000220000000220000000240000000240000000260000000260000000CPython 2.7Nuitka (historic)Nuitka (master)Nuitka (develop)Nuitka (factory)26472805072.9230769230769257.0CPython 2.7106750927194.46153846153845404.4667210768822Nuitka (historic)88902638316.0421.1275426292698Nuitka (master)88902651437.53846153846143421.12753049417495Nuitka (develop)89052461559.0769230769231420.987687527896Nuitka (factory)Construct CallCompiledObjectMethodPosArgsVariableTicks Construct CallCompiledObjectMethodPosArgsVariable 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000220000000220000000240000000240000000CPython 3.5Nuitka (historic)Nuitka (master)Nuitka (develop)Nuitka (factory)25163484572.9230769230769257.0CPython 3.50194.46153846153845504.11538461538464Nuitka (historic)97941877316.0407.93258209132364Nuitka (master)97953916437.53846153846143407.92075931647946Nuitka (develop)98054097559.0769230769231407.8223776064816Nuitka (factory)Construct CallCompiledObjectMethodPosArgsVariableTicks

Source Code with Construct

from __future__ import print_function

class C(object):
    def compiled_method(self, a,b,c,d,e,f):
        return a, b, c, d, e, f

def getUnknownValue():
    return 8

def calledRepeatedly():
    a = getUnknownValue()
    b = getUnknownValue()
    c = getUnknownValue()
    d = getUnknownValue()
    e = getUnknownValue()
    f = getUnknownValue()

    inst = C()

    # This is supposed to make a call to a non-compiled function, which is
    # being optimized separately.
# construct_begin
    inst.compiled_method(a, b, c, d, e, f)
    inst.compiled_method(a, c, b, d, e, f)
    inst.compiled_method(a, b, c, d, f, e)
# construct_alternative



for x in xrange(50000):
    calledRepeatedly()

print("OK.")

Source Code without Construct

from __future__ import print_function

class C(object):
    def compiled_method(self, a,b,c,d,e,f):
        return a, b, c, d, e, f

def getUnknownValue():
    return 8

def calledRepeatedly():
    a = getUnknownValue()
    b = getUnknownValue()
    c = getUnknownValue()
    d = getUnknownValue()
    e = getUnknownValue()
    f = getUnknownValue()

    inst = C()

    # This is supposed to make a call to a non-compiled function, which is
    # being optimized separately.
# construct_begin



# construct_alternative
    pass
# construct_end

for x in xrange(50000):
    calledRepeatedly()

print("OK.")

Context Diff of Source Code


Construct
Baseline
37     inst = C() 37     inst = C()
38 38
39     # This is supposed to make a call to a non-compiled function, which is 39     # This is supposed to make a call to a non-compiled function, which is
40     # being optimized separately. 40     # being optimized separately.
41 # construct_begin 41 # construct_begin
n 42     inst.compiled_method(a, b, c, d, e, f) n
43     inst.compiled_method(a, c, b, d, e, f)
44     inst.compiled_method(a, b, c, d, f, e)
45 # construct_alternative
46 42
47 43
t t 44  
45 # construct_alternative
46     pass
47 # construct_end
48 48
49 for x in xrange(50000): 49 for x in xrange(50000):
50     calledRepeatedly() 50     calledRepeatedly()
51 51
52 print("OK.") 52 print("OK.")

Context Diff of Generated Code


Construct
Baseline
503     NUITKA_MAY_BE_UNUSED int exception_lineno = -1; 503     NUITKA_MAY_BE_UNUSED int exception_lineno = -1;
504     PyObject *exception_keeper_type_1; 504     PyObject *exception_keeper_type_1;
505     PyObject *exception_keeper_value_1; 505     PyObject *exception_keeper_value_1;
506     PyTracebackObject *exception_keeper_tb_1; 506     PyTracebackObject *exception_keeper_tb_1;
507     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1; 507     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
n 508     PyObject *tmp_args_element_name_1; n
509     PyObject *tmp_args_element_name_2;
510     PyObject *tmp_args_element_name_3;
511     PyObject *tmp_args_element_name_4;
512     PyObject *tmp_args_element_name_5;
513     PyObject *tmp_args_element_name_6;
514     PyObject *tmp_args_element_name_7;
515     PyObject *tmp_args_element_name_8;
516     PyObject *tmp_args_element_name_9;
517     PyObject *tmp_args_element_name_10;
518     PyObject *tmp_args_element_name_11;
519     PyObject *tmp_args_element_name_12;
520     PyObject *tmp_args_element_name_13;
521     PyObject *tmp_args_element_name_14;
522     PyObject *tmp_args_element_name_15;
523     PyObject *tmp_args_element_name_16;
524     PyObject *tmp_args_element_name_17;
525     PyObject *tmp_args_element_name_18;
526     PyObject *tmp_assign_source_1; 508     PyObject *tmp_assign_source_1;
527     PyObject *tmp_assign_source_2; 509     PyObject *tmp_assign_source_2;
528     PyObject *tmp_assign_source_3; 510     PyObject *tmp_assign_source_3;
529     PyObject *tmp_assign_source_4; 511     PyObject *tmp_assign_source_4;
530     PyObject *tmp_assign_source_5; 512     PyObject *tmp_assign_source_5;
535     PyObject *tmp_called_name_3; 517     PyObject *tmp_called_name_3;
536     PyObject *tmp_called_name_4; 518     PyObject *tmp_called_name_4;
537     PyObject *tmp_called_name_5; 519     PyObject *tmp_called_name_5;
538     PyObject *tmp_called_name_6; 520     PyObject *tmp_called_name_6;
539     PyObject *tmp_called_name_7; 521     PyObject *tmp_called_name_7;
n 540     PyObject *tmp_called_name_8; n
541     PyObject *tmp_called_name_9;
542     PyObject *tmp_called_name_10;
543     PyObject *tmp_return_value; 522     PyObject *tmp_return_value;
n 544     PyObject *tmp_source_name_1; n
545     PyObject *tmp_source_name_2;
546     PyObject *tmp_source_name_3;
547     NUITKA_MAY_BE_UNUSED PyObject *tmp_unused;
548     static struct Nuitka_FrameObject *cache_frame_function = NULL; 523     static struct Nuitka_FrameObject *cache_frame_function = NULL;
549 524
550     struct Nuitka_FrameObject *frame_function; 525     struct Nuitka_FrameObject *frame_function;
551 526
552     char const *type_description; 527     char const *type_description;
828         goto frame_exception_exit_1; 803         goto frame_exception_exit_1;
829     } 804     }
830     assert( var_inst == NULL ); 805     assert( var_inst == NULL );
831     var_inst = tmp_assign_source_7; 806     var_inst = tmp_assign_source_7;
832 807
n 833     tmp_source_name_1 = var_inst; n
834  
835     tmp_called_name_8 = LOOKUP_ATTRIBUTE( tmp_source_name_1, const_str_plain_compiled_method );
836     if ( tmp_called_name_8 == NULL )
837     {
838         assert( ERROR_OCCURRED() );
839  
840         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
841  
842  
843         exception_lineno = 42;
844         type_description = "ooooooo";
845         goto frame_exception_exit_1;
846     }
847     tmp_args_element_name_1 = var_a;
848  
849     if ( tmp_args_element_name_1 == NULL )
850     {
851         Py_DECREF( tmp_called_name_8 );
852         exception_type = PyExc_UnboundLocalError;
853         Py_INCREF( exception_type );
854         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "a" );
855         exception_tb = NULL;
856         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
857         CHAIN_EXCEPTION( exception_value );
858  
859         exception_lineno = 42;
860         type_description = "ooooooo";
861         goto frame_exception_exit_1;
862     }
863  
864     tmp_args_element_name_2 = var_b;
865  
866     if ( tmp_args_element_name_2 == NULL )
867     {
868         Py_DECREF( tmp_called_name_8 );
869         exception_type = PyExc_UnboundLocalError;
870         Py_INCREF( exception_type );
871         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "b" );
872         exception_tb = NULL;
873         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
874         CHAIN_EXCEPTION( exception_value );
875  
876         exception_lineno = 42;
877         type_description = "ooooooo";
878         goto frame_exception_exit_1;
879     }
880  
881     tmp_args_element_name_3 = var_c;
882  
883     if ( tmp_args_element_name_3 == NULL )
884     {
885         Py_DECREF( tmp_called_name_8 );
886         exception_type = PyExc_UnboundLocalError;
887         Py_INCREF( exception_type );
888         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "c" );
889         exception_tb = NULL;
890         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
891         CHAIN_EXCEPTION( exception_value );
892  
893         exception_lineno = 42;
894         type_description = "ooooooo";
895         goto frame_exception_exit_1;
896     }
897  
898     tmp_args_element_name_4 = var_d;
899  
900     if ( tmp_args_element_name_4 == NULL )
901     {
902         Py_DECREF( tmp_called_name_8 );
903         exception_type = PyExc_UnboundLocalError;
904         Py_INCREF( exception_type );
905         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "d" );
906         exception_tb = NULL;
907         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
908         CHAIN_EXCEPTION( exception_value );
909  
910         exception_lineno = 42;
911         type_description = "ooooooo";
912         goto frame_exception_exit_1;
913     }
914  
915     tmp_args_element_name_5 = var_e;
916  
917     if ( tmp_args_element_name_5 == NULL )
918     {
919         Py_DECREF( tmp_called_name_8 );
920         exception_type = PyExc_UnboundLocalError;
921         Py_INCREF( exception_type );
922         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "e" );
923         exception_tb = NULL;
924         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
925         CHAIN_EXCEPTION( exception_value );
926  
927         exception_lineno = 42;
928         type_description = "ooooooo";
929         goto frame_exception_exit_1;
930     }
931  
932     tmp_args_element_name_6 = var_f;
933  
934     if ( tmp_args_element_name_6 == NULL )
935     {
936         Py_DECREF( tmp_called_name_8 );
937         exception_type = PyExc_UnboundLocalError;
938         Py_INCREF( exception_type );
939         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "f" );
940         exception_tb = NULL;
941         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
942         CHAIN_EXCEPTION( exception_value );
943  
944         exception_lineno = 42;
945         type_description = "ooooooo";
946         goto frame_exception_exit_1;
947     }
948  
949     frame_function->m_frame.f_lineno = 42;
950     {
951         PyObject *call_args[] = { tmp_args_element_name_1, tmp_args_element_name_2, tmp_args_element_name_3, tmp_args_element_name_4, tmp_args_element_name_5, tmp_args_element_name_6 };
952         tmp_unused = CALL_FUNCTION_WITH_ARGS6( tmp_called_name_8, call_args );
953     }
954  
955     Py_DECREF( tmp_called_name_8 );
956     if ( tmp_unused == NULL )
957     {
958         assert( ERROR_OCCURRED() );
959  
960         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
961  
962  
963         exception_lineno = 42;
964         type_description = "ooooooo";
965         goto frame_exception_exit_1;
966     }
967     Py_DECREF( tmp_unused );
968     tmp_source_name_2 = var_inst;
969  
970     if ( tmp_source_name_2 == NULL )
971     {
972  
973         exception_type = PyExc_UnboundLocalError;
974         Py_INCREF( exception_type );
975         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "inst" );
976         exception_tb = NULL;
977         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
978         CHAIN_EXCEPTION( exception_value );
979  
980         exception_lineno = 43;
981         type_description = "ooooooo";
982         goto frame_exception_exit_1;
983     }
984  
985     tmp_called_name_9 = LOOKUP_ATTRIBUTE( tmp_source_name_2, const_str_plain_compiled_method );
986     if ( tmp_called_name_9 == NULL )
987     {
988         assert( ERROR_OCCURRED() );
989  
990         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
991  
992  
993         exception_lineno = 43;
994         type_description = "ooooooo";
995         goto frame_exception_exit_1;
996     }
997     tmp_args_element_name_7 = var_a;
998  
999     if ( tmp_args_element_name_7 == NULL )
1000     {
1001         Py_DECREF( tmp_called_name_9 );
1002         exception_type = PyExc_UnboundLocalError;
1003         Py_INCREF( exception_type );
1004         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "a" );
1005         exception_tb = NULL;
1006         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1007         CHAIN_EXCEPTION( exception_value );
1008  
1009         exception_lineno = 43;
1010         type_description = "ooooooo";
1011         goto frame_exception_exit_1;
1012     }
1013  
1014     tmp_args_element_name_8 = var_c;
1015  
1016     if ( tmp_args_element_name_8 == NULL )
1017     {
1018         Py_DECREF( tmp_called_name_9 );
1019         exception_type = PyExc_UnboundLocalError;
1020         Py_INCREF( exception_type );
1021         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "c" );
1022         exception_tb = NULL;
1023         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1024         CHAIN_EXCEPTION( exception_value );
1025  
1026         exception_lineno = 43;
1027         type_description = "ooooooo";
1028         goto frame_exception_exit_1;
1029     }
1030  
1031     tmp_args_element_name_9 = var_b;
1032  
1033     if ( tmp_args_element_name_9 == NULL )
1034     {
1035         Py_DECREF( tmp_called_name_9 );
1036         exception_type = PyExc_UnboundLocalError;
1037         Py_INCREF( exception_type );
1038         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "b" );
1039         exception_tb = NULL;
1040         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1041         CHAIN_EXCEPTION( exception_value );
1042  
1043         exception_lineno = 43;
1044         type_description = "ooooooo";
1045         goto frame_exception_exit_1;
1046     }
1047  
1048     tmp_args_element_name_10 = var_d;
1049  
1050     if ( tmp_args_element_name_10 == NULL )
1051     {
1052         Py_DECREF( tmp_called_name_9 );
1053         exception_type = PyExc_UnboundLocalError;
1054         Py_INCREF( exception_type );
1055         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "d" );
1056         exception_tb = NULL;
1057         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1058         CHAIN_EXCEPTION( exception_value );
1059  
1060         exception_lineno = 43;
1061         type_description = "ooooooo";
1062         goto frame_exception_exit_1;
1063     }
1064  
1065     tmp_args_element_name_11 = var_e;
1066  
1067     if ( tmp_args_element_name_11 == NULL )
1068     {
1069         Py_DECREF( tmp_called_name_9 );
1070         exception_type = PyExc_UnboundLocalError;
1071         Py_INCREF( exception_type );
1072         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "e" );
1073         exception_tb = NULL;
1074         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1075         CHAIN_EXCEPTION( exception_value );
1076  
1077         exception_lineno = 43;
1078         type_description = "ooooooo";
1079         goto frame_exception_exit_1;
1080     }
1081  
1082     tmp_args_element_name_12 = var_f;
1083  
1084     if ( tmp_args_element_name_12 == NULL )
1085     {
1086         Py_DECREF( tmp_called_name_9 );
1087         exception_type = PyExc_UnboundLocalError;
1088         Py_INCREF( exception_type );
1089         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "f" );
1090         exception_tb = NULL;
1091         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1092         CHAIN_EXCEPTION( exception_value );
1093  
1094         exception_lineno = 43;
1095         type_description = "ooooooo";
1096         goto frame_exception_exit_1;
1097     }
1098  
1099     frame_function->m_frame.f_lineno = 43;
1100     {
1101         PyObject *call_args[] = { tmp_args_element_name_7, tmp_args_element_name_8, tmp_args_element_name_9, tmp_args_element_name_10, tmp_args_element_name_11, tmp_args_element_name_12 };
1102         tmp_unused = CALL_FUNCTION_WITH_ARGS6( tmp_called_name_9, call_args );
1103     }
1104  
1105     Py_DECREF( tmp_called_name_9 );
1106     if ( tmp_unused == NULL )
1107     {
1108         assert( ERROR_OCCURRED() );
1109  
1110         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
1111  
1112  
1113         exception_lineno = 43;
1114         type_description = "ooooooo";
1115         goto frame_exception_exit_1;
1116     }
1117     Py_DECREF( tmp_unused );
1118     tmp_source_name_3 = var_inst;
1119  
1120     if ( tmp_source_name_3 == NULL )
1121     {
1122  
1123         exception_type = PyExc_UnboundLocalError;
1124         Py_INCREF( exception_type );
1125         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "inst" );
1126         exception_tb = NULL;
1127         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1128         CHAIN_EXCEPTION( exception_value );
1129  
1130         exception_lineno = 44;
1131         type_description = "ooooooo";
1132         goto frame_exception_exit_1;
1133     }
1134  
1135     tmp_called_name_10 = LOOKUP_ATTRIBUTE( tmp_source_name_3, const_str_plain_compiled_method );
1136     if ( tmp_called_name_10 == NULL )
1137     {
1138         assert( ERROR_OCCURRED() );
1139  
1140         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
1141  
1142  
1143         exception_lineno = 44;
1144         type_description = "ooooooo";
1145         goto frame_exception_exit_1;
1146     }
1147     tmp_args_element_name_13 = var_a;
1148  
1149     if ( tmp_args_element_name_13 == NULL )
1150     {
1151         Py_DECREF( tmp_called_name_10 );
1152         exception_type = PyExc_UnboundLocalError;
1153         Py_INCREF( exception_type );
1154         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "a" );
1155         exception_tb = NULL;
1156         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1157         CHAIN_EXCEPTION( exception_value );
1158  
1159         exception_lineno = 44;
1160         type_description = "ooooooo";
1161         goto frame_exception_exit_1;
1162     }
1163  
1164     tmp_args_element_name_14 = var_b;
1165  
1166     if ( tmp_args_element_name_14 == NULL )
1167     {
1168         Py_DECREF( tmp_called_name_10 );
1169         exception_type = PyExc_UnboundLocalError;
1170         Py_INCREF( exception_type );
1171         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "b" );
1172         exception_tb = NULL;
1173         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1174         CHAIN_EXCEPTION( exception_value );
1175  
1176         exception_lineno = 44;
1177         type_description = "ooooooo";
1178         goto frame_exception_exit_1;
1179     }
1180  
1181     tmp_args_element_name_15 = var_c;
1182  
1183     if ( tmp_args_element_name_15 == NULL )
1184     {
1185         Py_DECREF( tmp_called_name_10 );
1186         exception_type = PyExc_UnboundLocalError;
1187         Py_INCREF( exception_type );
1188         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "c" );
1189         exception_tb = NULL;
1190         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1191         CHAIN_EXCEPTION( exception_value );
1192  
1193         exception_lineno = 44;
1194         type_description = "ooooooo";
1195         goto frame_exception_exit_1;
1196     }
1197  
1198     tmp_args_element_name_16 = var_d;
1199  
1200     if ( tmp_args_element_name_16 == NULL )
1201     {
1202         Py_DECREF( tmp_called_name_10 );
1203         exception_type = PyExc_UnboundLocalError;
1204         Py_INCREF( exception_type );
1205         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "d" );
1206         exception_tb = NULL;
1207         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1208         CHAIN_EXCEPTION( exception_value );
1209  
1210         exception_lineno = 44;
1211         type_description = "ooooooo";
1212         goto frame_exception_exit_1;
1213     }
1214  
1215     tmp_args_element_name_17 = var_f;
1216  
1217     if ( tmp_args_element_name_17 == NULL )
1218     {
1219         Py_DECREF( tmp_called_name_10 );
1220         exception_type = PyExc_UnboundLocalError;
1221         Py_INCREF( exception_type );
1222         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "f" );
1223         exception_tb = NULL;
1224         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1225         CHAIN_EXCEPTION( exception_value );
1226  
1227         exception_lineno = 44;
1228         type_description = "ooooooo";
1229         goto frame_exception_exit_1;
1230     }
1231  
1232     tmp_args_element_name_18 = var_e;
1233  
1234     if ( tmp_args_element_name_18 == NULL )
1235     {
1236         Py_DECREF( tmp_called_name_10 );
1237         exception_type = PyExc_UnboundLocalError;
1238         Py_INCREF( exception_type );
1239         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "e" );
1240         exception_tb = NULL;
1241         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1242         CHAIN_EXCEPTION( exception_value );
1243  
1244         exception_lineno = 44;
1245         type_description = "ooooooo";
1246         goto frame_exception_exit_1;
1247     }
1248  
1249     frame_function->m_frame.f_lineno = 44;
1250     {
1251         PyObject *call_args[] = { tmp_args_element_name_13, tmp_args_element_name_14, tmp_args_element_name_15, tmp_args_element_name_16, tmp_args_element_name_17, tmp_args_element_name_18 };
1252         tmp_unused = CALL_FUNCTION_WITH_ARGS6( tmp_called_name_10, call_args );
1253     }
1254  
1255     Py_DECREF( tmp_called_name_10 );
1256     if ( tmp_unused == NULL )
1257     {
1258         assert( ERROR_OCCURRED() );
1259  
1260         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
1261  
1262  
1263         exception_lineno = 44;
1264         type_description = "ooooooo";
1265         goto frame_exception_exit_1;
1266     }
1267     Py_DECREF( tmp_unused );
1268 808
1269 #if 0 809 #if 0
1270     RESTORE_FRAME_EXCEPTION( frame_function ); 810     RESTORE_FRAME_EXCEPTION( frame_function );
1271 #endif 811 #endif
1272 812
1366     Py_XDECREF( var_e ); 906     Py_XDECREF( var_e );
1367     var_e = NULL; 907     var_e = NULL;
1368 908
1369     Py_XDECREF( var_f ); 909     Py_XDECREF( var_f );
1370     var_f = NULL; 910     var_f = NULL;
t 1371   t
1372     Py_XDECREF( var_inst );
1373     var_inst = NULL;
1374 911
1375     // Re-raise. 912     // Re-raise.
1376     exception_type = exception_keeper_type_1; 913     exception_type = exception_keeper_type_1;
1377     exception_value = exception_keeper_value_1; 914     exception_value = exception_keeper_value_1;
1378     exception_tb = exception_keeper_tb_1; 915     exception_tb = exception_keeper_tb_1;