int mpp_test(sym_environment *env) { int termcode, i, file_num = 1; char input_files[2][MAX_FILE_NAME_LENGTH +1] = {"sample.mpp"}; double sol[1] = {70.00}; char *input_dir = (char*)malloc(CSIZE*(MAX_FILE_NAME_LENGTH+1)); char *infile = (char*)malloc(CSIZE*(MAX_FILE_NAME_LENGTH+1)); double *obj_val = (double *)calloc(DSIZE,file_num); double tol = 1e-03; mpp_problem *mpp = (mpp_problem *) env->user; if (strcmp(mpp->par.test_dir, "") == 0){ strcpy(input_dir, "."); } else{ strcpy(input_dir, mpp->par.test_dir); } sym_set_int_param(env, "verbosity", -10); for(i = 0; i<file_num; i++){ strcpy(infile, ""); sprintf(infile, "%s%s%s", input_dir, "/", input_files[i]); strcpy(mpp->par.infile, infile); CALL_FUNCTION( sym_load_problem(env) ); printf("Solving %s...\n", input_files[i]); CALL_FUNCTION( sym_solve(env) ); sym_get_obj_val(env, &obj_val[i]); if((obj_val[i] < sol[i] + tol) && (obj_val[i] > sol[i] - tol)){ printf("Success!\n"); } else { printf("Failure!(%f, %f) \n", obj_val[i], sol[i]); } if(env->mip->n && i + 1 < file_num){ free_master_u(env); strcpy(env->par.infile, ""); env->mip = (MIPdesc *) calloc(1, sizeof(MIPdesc)); } } mpp->par.test = FALSE; FREE(input_dir); FREE(infile); FREE(obj_val); return(0); }
Var JavascriptSet::EntryForEach(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); AUTO_TAG_NATIVE_LIBRARY_ENTRY(function, callInfo, _u("Set.prototype.forEach")); if (!JavascriptSet::Is(args[0])) { JavascriptError::ThrowTypeErrorVar(scriptContext, JSERR_NeedObjectOfType, _u("Set.prototype.forEach"), _u("Set")); } JavascriptSet* set = JavascriptSet::FromVar(args[0]); if (args.Info.Count < 2 || !JavascriptConversion::IsCallable(args[1])) { JavascriptError::ThrowTypeError(scriptContext, JSERR_FunctionArgument_NeedFunction, _u("Set.prototype.forEach")); } RecyclableObject* callBackFn = RecyclableObject::FromVar(args[1]); Var thisArg = (args.Info.Count > 2) ? args[2] : scriptContext->GetLibrary()->GetUndefined(); auto iterator = set->GetIterator(); while (iterator.Next()) { Var value = iterator.Current(); CALL_FUNCTION(callBackFn, CallInfo(CallFlags_Value, 4), thisArg, value, value, args[0]); } return scriptContext->GetLibrary()->GetUndefined(); }
PyObject *call_args_kw( PyObject *args, PyObject *kw ) { return CALL_FUNCTION( this->asObject0(), args, kw ); }
NUITKA_MAY_BE_UNUSED static PyObject *CALL_FUNCTION_WITH_KEYARGS( PyObject *function_object, PyObject *named_args ) { return CALL_FUNCTION( function_object, const_tuple_empty, named_args ); }
// Function call variants with positional arguments tuple. NUITKA_MAY_BE_UNUSED static PyObject *CALL_FUNCTION_WITH_POSARGS( PyObject *function_object, PyObject *positional_args ) { return CALL_FUNCTION( function_object, positional_args, NULL ); }
Var JavascriptWeakSet::NewInstance(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); JavascriptLibrary* library = scriptContext->GetLibrary(); Var newTarget = callInfo.Flags & CallFlags_NewTarget ? args.Values[args.Info.Count] : args[0]; bool isCtorSuperCall = (callInfo.Flags & CallFlags_New) && newTarget != nullptr && !JavascriptOperators::IsUndefined(newTarget); Assert(isCtorSuperCall || !(callInfo.Flags & CallFlags_New) || args[0] == nullptr); CHAKRATEL_LANGSTATS_INC_BUILTINCOUNT(WeakSetCount); JavascriptWeakSet* weakSetObject = nullptr; if (callInfo.Flags & CallFlags_New) { weakSetObject = library->CreateWeakSet(); } else { JavascriptError::ThrowTypeErrorVar(scriptContext, JSERR_NeedObjectOfType, _u("WeakSet"), _u("WeakSet")); } Assert(weakSetObject != nullptr); Var iterable = (args.Info.Count > 1) ? args[1] : library->GetUndefined(); RecyclableObject* iter = nullptr; RecyclableObject* adder = nullptr; if (JavascriptConversion::CheckObjectCoercible(iterable, scriptContext)) { iter = JavascriptOperators::GetIterator(iterable, scriptContext); Var adderVar = JavascriptOperators::GetProperty(weakSetObject, PropertyIds::add, scriptContext); if (!JavascriptConversion::IsCallable(adderVar)) { JavascriptError::ThrowTypeError(scriptContext, JSERR_NeedFunction); } adder = RecyclableObject::FromVar(adderVar); } if (iter != nullptr) { Var nextItem; while (JavascriptOperators::IteratorStepAndValue(iter, scriptContext, &nextItem)) { CALL_FUNCTION(adder, CallInfo(CallFlags_Value, 2), weakSetObject, nextItem); } } return isCtorSuperCall ? JavascriptOperators::OrdinaryCreateFromConstructor(RecyclableObject::FromVar(newTarget), weakSetObject, nullptr, scriptContext) : weakSetObject; }
int main(int argc, char **argv) { int termcode; mpp_problem *mpp; sym_environment *env = sym_open_environment(); sym_version(); CALL_FUNCTION( sym_get_user_data(env, (void **)&mpp) ); CALL_FUNCTION( sym_parse_command_line(env, argc, argv) ); if(mpp->par.test){ mpp_test(env); } else { CALL_FUNCTION( sym_load_problem(env) ); CALL_FUNCTION( sym_find_initial_bounds(env) ); CALL_FUNCTION( sym_solve(env) ); } CALL_FUNCTION( sym_close_environment(env) ); return(0); }
Var JavascriptGeneratorFunction::EntryAsyncFunctionImplementation(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(stackArgs, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); JavascriptLibrary* library = scriptContext->GetLibrary(); RecyclableObject* prototype = scriptContext->GetLibrary()->GetNull(); // InterpreterStackFrame takes a pointer to the args, so copy them to the recycler heap // and use that buffer for this InterpreterStackFrame. Var* argsHeapCopy = RecyclerNewArray(scriptContext->GetRecycler(), Var, stackArgs.Info.Count); js_memcpy_s(argsHeapCopy, sizeof(Var) * stackArgs.Info.Count, stackArgs.Values, sizeof(Var) * stackArgs.Info.Count); Arguments heapArgs(callInfo, argsHeapCopy); JavascriptExceptionObject* e = nullptr; JavascriptPromiseResolveOrRejectFunction* resolve; JavascriptPromiseResolveOrRejectFunction* reject; JavascriptPromiseAsyncSpawnExecutorFunction* executor = library->CreatePromiseAsyncSpawnExecutorFunction( JavascriptPromise::EntryJavascriptPromiseAsyncSpawnExecutorFunction, scriptContext->GetLibrary()->CreateGenerator(heapArgs, JavascriptAsyncFunction::FromVar(function)->GetGeneratorVirtualScriptFunction(), prototype), stackArgs[0]); JavascriptPromise* promise = library->CreatePromise(); JavascriptPromise::InitializePromise(promise, &resolve, &reject, scriptContext); try { CALL_FUNCTION(executor, CallInfo(CallFlags_Value, 3), library->GetUndefined(), resolve, reject); } catch (JavascriptExceptionObject* ex) { e = ex; } if (e != nullptr) { JavascriptPromise::TryRejectWithExceptionObject(e, reject, scriptContext); } return promise; }
void macroArgContainsCommaLParenRParenTest() { int *a; CALL_FUNCTION(setToNullAndPrint(&a, "Hello!")); *a = 5; // expected-warning{{Dereference of null pointer}} }
void macroArgContainsLParenRParenTest() { int *a; CALL_FUNCTION(setToNull(&a)); *a = 5; // expected-warning{{Dereference of null pointer}} }
MOD_INIT_DECL( django$utils$simplejson ) { #if defined(_NUITKA_EXE) || PYTHON_VERSION >= 300 static bool _init_done = false; // Packages can be imported recursively in deep executables. if ( _init_done ) { return MOD_RETURN_VALUE( module_django$utils$simplejson ); } else { _init_done = true; } #endif #ifdef _NUITKA_MODULE // In case of a stand alone extension module, need to call initialization // the init here because that's the first and only time we are going to get // called here. // Initialize the constant values used. _initBuiltinModule(); _initConstants(); // Initialize the compiled types of Nuitka. PyType_Ready( &Nuitka_Generator_Type ); PyType_Ready( &Nuitka_Function_Type ); PyType_Ready( &Nuitka_Method_Type ); PyType_Ready( &Nuitka_Frame_Type ); #if PYTHON_VERSION < 300 initSlotCompare(); #endif patchBuiltinModule(); patchTypeComparison(); #endif #if _MODULE_UNFREEZER registerMetaPathBasedUnfreezer( meta_path_loader_entries ); #endif _initModuleConstants(); _initModuleCodeObjects(); // puts( "in initdjango$utils$simplejson" ); // Create the module object first. There are no methods initially, all are // added dynamically in actual code only. Also no "__doc__" is initially // set at this time, as it could not contain NUL characters this way, they // are instead set in early module code. No "self" for modules, we have no // use for it. #if PYTHON_VERSION < 300 module_django$utils$simplejson = Py_InitModule4( "django.utils.simplejson", // Module Name NULL, // No methods initially, all are added // dynamically in actual module code only. NULL, // No __doc__ is initially set, as it could // not contain NUL this way, added early in // actual code. NULL, // No self for modules, we don't use it. PYTHON_API_VERSION ); #else module_django$utils$simplejson = PyModule_Create( &mdef_django$utils$simplejson ); #endif moduledict_django$utils$simplejson = (PyDictObject *)((PyModuleObject *)module_django$utils$simplejson)->md_dict; assertObject( module_django$utils$simplejson ); // Seems to work for Python2.7 out of the box, but for Python3, the module // doesn't automatically enter "sys.modules", so do it manually. #if PYTHON_VERSION >= 300 { int r = PyObject_SetItem( PySys_GetObject( (char *)"modules" ), const_str_digest_8e395302c5225c24e16f9edd8dd95062, module_django$utils$simplejson ); assert( r != -1 ); } #endif // For deep importing of a module we need to have "__builtins__", so we set // it ourselves in the same way than CPython does. Note: This must be done // before the frame object is allocated, or else it may fail. PyObject *module_dict = PyModule_GetDict( module_django$utils$simplejson ); if ( PyDict_GetItem( module_dict, const_str_plain___builtins__ ) == NULL ) { PyObject *value = (PyObject *)builtin_module; // Check if main module, not a dict then. #if !defined(_NUITKA_EXE) || !0 value = PyModule_GetDict( value ); #endif #ifndef __NUITKA_NO_ASSERT__ int res = #endif PyDict_SetItem( module_dict, const_str_plain___builtins__, value ); assert( res == 0 ); } #if PYTHON_VERSION >= 330 #if _MODULE_UNFREEZER PyDict_SetItem( module_dict, const_str_plain___loader__, metapath_based_loader ); #else PyDict_SetItem( module_dict, const_str_plain___loader__, Py_None ); #endif #endif // Temp variables if any PyObjectTempVariable tmp_or_1__value_1; PyObjectTempVariable tmp_try_except_1__unhandled_indicator; PyObject *exception_type, *exception_value; PyTracebackObject *exception_tb; PyObject *exception_keeper_type_1; PyObject *exception_keeper_value_1; PyTracebackObject *exception_keeper_tb_1; PyObject *exception_keeper_type_2; PyObject *exception_keeper_value_2; PyTracebackObject *exception_keeper_tb_2; PyObject *exception_keeper_type_3; PyObject *exception_keeper_value_3; PyTracebackObject *exception_keeper_tb_3; PyObject *exception_keeper_type_4; PyObject *exception_keeper_value_4; PyTracebackObject *exception_keeper_tb_4; PyObject *tmp_assign_source_1; PyObject *tmp_assign_source_2; PyObject *tmp_assign_source_3; PyObject *tmp_assign_source_4; PyObject *tmp_assign_source_5; PyObject *tmp_assign_source_6; PyObject *tmp_assign_source_7; PyObject *tmp_assign_source_8; PyObject *tmp_assign_source_9; PyObject *tmp_assign_source_10; PyObject *tmp_assign_source_11; PyObject *tmp_assign_source_12; PyObject *tmp_assign_source_13; PyObject *tmp_call_arg_element_1; PyObject *tmp_call_arg_element_2; PyObject *tmp_call_kw_1; PyObject *tmp_call_pos_1; PyObject *tmp_called_1; PyObject *tmp_called_2; PyObject *tmp_called_3; PyObject *tmp_compare_left_1; PyObject *tmp_compare_left_2; PyObject *tmp_compare_right_1; PyObject *tmp_compare_right_2; PyObject *tmp_compexpr_left_1; PyObject *tmp_compexpr_right_1; int tmp_cond_truth_1; int tmp_cond_truth_2; PyObject *tmp_cond_value_1; PyObject *tmp_cond_value_2; int tmp_exc_match_exception_match_1; PyObject *tmp_hasattr_attr_1; PyObject *tmp_hasattr_value_1; PyObject *tmp_import_globals_1; PyObject *tmp_import_globals_2; PyObject *tmp_import_globals_3; PyObject *tmp_import_globals_4; PyObject *tmp_import_globals_5; PyObject *tmp_import_globals_6; PyObject *tmp_import_globals_7; PyObject *tmp_import_globals_8; PyObject *tmp_import_name_from_1; PyObject *tmp_import_name_from_2; PyObject *tmp_import_name_from_3; PyObject *tmp_import_name_from_4; bool tmp_is_1; bool tmp_result; PyObject *tmp_source_name_1; PyObject *tmp_source_name_2; PyObject *tmp_source_name_3; PyObject *tmp_source_name_4; PyObject *tmp_star_imported_1; PyObject *tmp_star_imported_2; int tmp_tried_lineno_1; int tmp_tried_lineno_2; PyObject *tmp_tuple_element_1; NUITKA_MAY_BE_UNUSED PyObject *tmp_unused; // Module code. tmp_assign_source_1 = Py_None; UPDATE_STRING_DICT0( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain___doc__, tmp_assign_source_1 ); tmp_assign_source_2 = const_str_digest_b263340febec452f7ce0d23d319dd69a; UPDATE_STRING_DICT0( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain___file__, tmp_assign_source_2 ); // Frame without reuse. PyFrameObject *frame_module = MAKE_FRAME( codeobj_525b0a67f88de51bd5157e3eb4d3fcf3, module_django$utils$simplejson ); // Push the new frame as the currently active one, and we should be exlusively // owning it. pushFrameStack( frame_module ); assert( Py_REFCNT( frame_module ) == 1 ); #if PYTHON_VERSION >= 340 frame_module->f_executing += 1; #endif // Framed code: tmp_import_globals_1 = ((PyModuleObject *)module_django$utils$simplejson)->md_dict; frame_module->f_lineno = 8; tmp_import_name_from_1 = IMPORT_MODULE( const_str_plain___future__, tmp_import_globals_1, tmp_import_globals_1, const_tuple_str_plain_absolute_import_tuple, const_int_0 ); if ( tmp_import_name_from_1 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 8; goto frame_exception_exit_1; } tmp_assign_source_3 = IMPORT_NAME( tmp_import_name_from_1, const_str_plain_absolute_import ); Py_DECREF( tmp_import_name_from_1 ); if ( tmp_assign_source_3 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 8; goto frame_exception_exit_1; } UPDATE_STRING_DICT1( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain_absolute_import, tmp_assign_source_3 ); tmp_import_globals_2 = ((PyModuleObject *)module_django$utils$simplejson)->md_dict; frame_module->f_lineno = 10; tmp_assign_source_4 = IMPORT_MODULE( const_str_plain_warnings, tmp_import_globals_2, tmp_import_globals_2, Py_None, const_int_0 ); if ( tmp_assign_source_4 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 10; goto frame_exception_exit_1; } UPDATE_STRING_DICT1( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain_warnings, tmp_assign_source_4 ); tmp_source_name_1 = GET_STRING_DICT_VALUE( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain_warnings ); if (unlikely( tmp_source_name_1 == NULL )) { tmp_source_name_1 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_warnings ); } if ( tmp_source_name_1 == NULL ) { exception_type = INCREASE_REFCOUNT( PyExc_NameError ); exception_value = UNSTREAM_STRING( &constant_bin[ 6021 ], 30, 0 ); exception_tb = NULL; frame_module->f_lineno = 11; goto frame_exception_exit_1; } tmp_called_1 = LOOKUP_ATTRIBUTE( tmp_source_name_1, const_str_plain_warn ); if ( tmp_called_1 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 11; goto frame_exception_exit_1; } tmp_call_pos_1 = PyTuple_New( 2 ); tmp_tuple_element_1 = const_str_digest_7169b7e65e78489e48321bf243165725; Py_INCREF( tmp_tuple_element_1 ); PyTuple_SET_ITEM( tmp_call_pos_1, 0, tmp_tuple_element_1 ); tmp_tuple_element_1 = GET_STRING_DICT_VALUE( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain_DeprecationWarning ); if (unlikely( tmp_tuple_element_1 == NULL )) { tmp_tuple_element_1 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_DeprecationWarning ); } if ( tmp_tuple_element_1 == NULL ) { Py_DECREF( tmp_called_1 ); Py_DECREF( tmp_call_pos_1 ); exception_type = INCREASE_REFCOUNT( PyExc_NameError ); exception_value = UNSTREAM_STRING( &constant_bin[ 6058 ], 40, 0 ); exception_tb = NULL; frame_module->f_lineno = 12; goto frame_exception_exit_1; } Py_INCREF( tmp_tuple_element_1 ); PyTuple_SET_ITEM( tmp_call_pos_1, 1, tmp_tuple_element_1 ); tmp_call_kw_1 = PyDict_Copy( const_dict_f154c9a58c9419d7e391901d7b7fe49e ); frame_module->f_lineno = 12; tmp_unused = CALL_FUNCTION( tmp_called_1, tmp_call_pos_1, tmp_call_kw_1 ); Py_DECREF( tmp_called_1 ); Py_DECREF( tmp_call_pos_1 ); Py_DECREF( tmp_call_kw_1 ); if ( tmp_unused == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 12; goto frame_exception_exit_1; } Py_DECREF( tmp_unused ); tmp_assign_source_5 = Py_True; assert( tmp_try_except_1__unhandled_indicator.object == NULL ); tmp_try_except_1__unhandled_indicator.object = INCREASE_REFCOUNT( tmp_assign_source_5 ); // Tried code // Tried block of try/except tmp_import_globals_3 = ((PyModuleObject *)module_django$utils$simplejson)->md_dict; frame_module->f_lineno = 15; tmp_assign_source_6 = IMPORT_MODULE( const_str_plain_simplejson, tmp_import_globals_3, tmp_import_globals_3, Py_None, const_int_0 ); if ( tmp_assign_source_6 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 15; goto try_except_handler_1; } UPDATE_STRING_DICT1( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain_simplejson, tmp_assign_source_6 ); goto try_except_end_1; try_except_handler_1:; // Exception handler of try/except tmp_assign_source_7 = Py_False; if (tmp_try_except_1__unhandled_indicator.object == NULL) { tmp_try_except_1__unhandled_indicator.object = INCREASE_REFCOUNT( tmp_assign_source_7 ); } else { PyObject *old = tmp_try_except_1__unhandled_indicator.object; tmp_try_except_1__unhandled_indicator.object = INCREASE_REFCOUNT( tmp_assign_source_7 ); Py_DECREF( old ); } // Preserve existing published exception. PRESERVE_FRAME_EXCEPTION( frame_module ); if (exception_tb == NULL) { exception_tb = MAKE_TRACEBACK( INCREASE_REFCOUNT( frame_module ) ); } else if ( exception_tb->tb_frame != frame_module || exception_tb->tb_lineno != frame_module->f_lineno ) { exception_tb = ADD_TRACEBACK( frame_module, exception_tb ); } NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); PUBLISH_EXCEPTION( &exception_type, &exception_value, &exception_tb ); tmp_compare_left_1 = PyThreadState_GET()->exc_type; tmp_compare_right_1 = PyExc_ImportError; tmp_exc_match_exception_match_1 = EXCEPTION_MATCH_BOOL( tmp_compare_left_1, tmp_compare_right_1 ); if ( tmp_exc_match_exception_match_1 == -1 ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 16; goto try_finally_handler_1; } if (tmp_exc_match_exception_match_1 == 1) { goto branch_yes_1; } else { goto branch_no_1; } branch_yes_1:; tmp_assign_source_8 = Py_False; UPDATE_STRING_DICT0( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain_use_simplejson, tmp_assign_source_8 ); goto branch_end_1; branch_no_1:; RERAISE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); if (exception_tb && exception_tb->tb_frame == frame_module) frame_module->f_lineno = exception_tb->tb_lineno; goto try_finally_handler_1; branch_end_1:; try_except_end_1:; tmp_compare_left_2 = tmp_try_except_1__unhandled_indicator.object; tmp_compare_right_2 = Py_True; tmp_is_1 = ( tmp_compare_left_2 == tmp_compare_right_2 ); if (tmp_is_1) { goto branch_yes_2; } else { goto branch_no_2; } branch_yes_2:; tmp_import_globals_4 = ((PyModuleObject *)module_django$utils$simplejson)->md_dict; frame_module->f_lineno = 21; tmp_import_name_from_2 = IMPORT_MODULE( const_str_plain_json, tmp_import_globals_4, tmp_import_globals_4, const_tuple_str_plain___version___tuple, const_int_0 ); if ( tmp_import_name_from_2 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 21; goto try_finally_handler_1; } tmp_assign_source_9 = IMPORT_NAME( tmp_import_name_from_2, const_str_plain___version__ ); Py_DECREF( tmp_import_name_from_2 ); if ( tmp_assign_source_9 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 21; goto try_finally_handler_1; } UPDATE_STRING_DICT1( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain_stdlib_json_version, tmp_assign_source_9 ); // Tried code tmp_assign_source_10 = NULL; // Tried code tmp_hasattr_value_1 = GET_STRING_DICT_VALUE( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain_simplejson ); if (unlikely( tmp_hasattr_value_1 == NULL )) { tmp_hasattr_value_1 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_simplejson ); } if ( tmp_hasattr_value_1 == NULL ) { exception_type = INCREASE_REFCOUNT( PyExc_NameError ); exception_value = UNSTREAM_STRING( &constant_bin[ 15633 ], 32, 0 ); exception_tb = NULL; frame_module->f_lineno = 22; goto try_finally_handler_3; } tmp_hasattr_attr_1 = const_str_plain__speedups; tmp_assign_source_11 = BUILTIN_HASATTR( tmp_hasattr_value_1, tmp_hasattr_attr_1 ); if ( tmp_assign_source_11 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 22; goto try_finally_handler_3; } assert( tmp_or_1__value_1.object == NULL ); tmp_or_1__value_1.object = INCREASE_REFCOUNT( tmp_assign_source_11 ); tmp_cond_value_1 = tmp_or_1__value_1.object; tmp_cond_truth_1 = CHECK_IF_TRUE( tmp_cond_value_1 ); if ( tmp_cond_truth_1 == -1 ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 22; goto try_finally_handler_3; } if (tmp_cond_truth_1 == 1) { goto condexpr_true_1; } else { goto condexpr_false_1; } condexpr_true_1:; tmp_assign_source_10 = tmp_or_1__value_1.object; Py_INCREF( tmp_assign_source_10 ); goto condexpr_end_1; condexpr_false_1:; tmp_assign_source_10 = NULL; // Tried code tmp_result = tmp_or_1__value_1.object != NULL; if ( tmp_result == true ) { Py_DECREF( tmp_or_1__value_1.object ); tmp_or_1__value_1.object = NULL; } assert( tmp_result != false ); tmp_source_name_3 = GET_STRING_DICT_VALUE( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain_simplejson ); if (unlikely( tmp_source_name_3 == NULL )) { tmp_source_name_3 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_simplejson ); } if ( tmp_source_name_3 == NULL ) { exception_type = INCREASE_REFCOUNT( PyExc_NameError ); exception_value = UNSTREAM_STRING( &constant_bin[ 15633 ], 32, 0 ); exception_tb = NULL; frame_module->f_lineno = 23; goto try_finally_handler_4; } tmp_source_name_2 = LOOKUP_ATTRIBUTE( tmp_source_name_3, const_str_plain___version__ ); if ( tmp_source_name_2 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 23; goto try_finally_handler_4; } tmp_called_2 = LOOKUP_ATTRIBUTE( tmp_source_name_2, const_str_plain_split ); Py_DECREF( tmp_source_name_2 ); if ( tmp_called_2 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 23; goto try_finally_handler_4; } tmp_call_arg_element_1 = const_str_dot; frame_module->f_lineno = 23; tmp_compexpr_left_1 = CALL_FUNCTION_WITH_ARGS1( tmp_called_2, tmp_call_arg_element_1 ); Py_DECREF( tmp_called_2 ); if ( tmp_compexpr_left_1 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 23; goto try_finally_handler_4; } tmp_source_name_4 = GET_STRING_DICT_VALUE( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain_stdlib_json_version ); if (unlikely( tmp_source_name_4 == NULL )) { tmp_source_name_4 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_stdlib_json_version ); } if ( tmp_source_name_4 == NULL ) { Py_DECREF( tmp_compexpr_left_1 ); exception_type = INCREASE_REFCOUNT( PyExc_NameError ); exception_value = UNSTREAM_STRING( &constant_bin[ 27036 ], 41, 0 ); exception_tb = NULL; frame_module->f_lineno = 23; goto try_finally_handler_4; } tmp_called_3 = LOOKUP_ATTRIBUTE( tmp_source_name_4, const_str_plain_split ); if ( tmp_called_3 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); Py_DECREF( tmp_compexpr_left_1 ); frame_module->f_lineno = 23; goto try_finally_handler_4; } tmp_call_arg_element_2 = const_str_dot; frame_module->f_lineno = 23; tmp_compexpr_right_1 = CALL_FUNCTION_WITH_ARGS1( tmp_called_3, tmp_call_arg_element_2 ); Py_DECREF( tmp_called_3 ); if ( tmp_compexpr_right_1 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); Py_DECREF( tmp_compexpr_left_1 ); frame_module->f_lineno = 23; goto try_finally_handler_4; } tmp_assign_source_10 = RICH_COMPARE_GE( tmp_compexpr_left_1, tmp_compexpr_right_1 ); Py_DECREF( tmp_compexpr_left_1 ); Py_DECREF( tmp_compexpr_right_1 ); if ( tmp_assign_source_10 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 23; goto try_finally_handler_4; } // Final block of try/finally // Tried block ends with no exception occured, note that. exception_type = NULL; exception_value = NULL; exception_tb = NULL; try_finally_handler_4:; exception_keeper_type_1 = exception_type; exception_keeper_value_1 = exception_value; exception_keeper_tb_1 = exception_tb; exception_type = NULL; exception_value = NULL; exception_tb = NULL; // Re-reraise as necessary after finally was executed. // Reraise exception if any. if ( exception_keeper_type_1 != NULL ) { exception_type = exception_keeper_type_1; exception_value = exception_keeper_value_1; exception_tb = exception_keeper_tb_1; goto try_finally_handler_3; } goto finally_end_1; finally_end_1:; condexpr_end_1:; // Final block of try/finally // Tried block ends with no exception occured, note that. exception_type = NULL; exception_value = NULL; exception_tb = NULL; try_finally_handler_3:; exception_keeper_type_2 = exception_type; exception_keeper_value_2 = exception_value; exception_keeper_tb_2 = exception_tb; exception_type = NULL; exception_value = NULL; exception_tb = NULL; // Re-reraise as necessary after finally was executed. // Reraise exception if any. if ( exception_keeper_type_2 != NULL ) { exception_type = exception_keeper_type_2; exception_value = exception_keeper_value_2; exception_tb = exception_keeper_tb_2; goto try_finally_handler_2; } goto finally_end_2; finally_end_2:; UPDATE_STRING_DICT1( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain_use_simplejson, tmp_assign_source_10 ); // Final block of try/finally // Tried block ends with no exception occured, note that. exception_type = NULL; exception_value = NULL; exception_tb = NULL; try_finally_handler_2:; exception_keeper_type_3 = exception_type; exception_keeper_value_3 = exception_value; exception_keeper_tb_3 = exception_tb; exception_type = NULL; exception_value = NULL; exception_tb = NULL; tmp_tried_lineno_1 = frame_module->f_lineno; Py_XDECREF( tmp_or_1__value_1.object ); tmp_or_1__value_1.object = NULL; frame_module->f_lineno = tmp_tried_lineno_1; // Re-reraise as necessary after finally was executed. // Reraise exception if any. if ( exception_keeper_type_3 != NULL ) { exception_type = exception_keeper_type_3; exception_value = exception_keeper_value_3; exception_tb = exception_keeper_tb_3; goto try_finally_handler_1; } goto finally_end_3; finally_end_3:; branch_no_2:; // Final block of try/finally // Tried block ends with no exception occured, note that. exception_type = NULL; exception_value = NULL; exception_tb = NULL; try_finally_handler_1:; exception_keeper_type_4 = exception_type; exception_keeper_value_4 = exception_value; exception_keeper_tb_4 = exception_tb; exception_type = NULL; exception_value = NULL; exception_tb = NULL; tmp_tried_lineno_2 = frame_module->f_lineno; tmp_result = tmp_try_except_1__unhandled_indicator.object != NULL; if ( tmp_result == true ) { Py_DECREF( tmp_try_except_1__unhandled_indicator.object ); tmp_try_except_1__unhandled_indicator.object = NULL; } assert( tmp_result != false ); frame_module->f_lineno = tmp_tried_lineno_2; // Re-reraise as necessary after finally was executed. // Reraise exception if any. if ( exception_keeper_type_4 != NULL ) { exception_type = exception_keeper_type_4; exception_value = exception_keeper_value_4; exception_tb = exception_keeper_tb_4; goto frame_exception_exit_1; } goto finally_end_4; finally_end_4:; tmp_cond_value_2 = GET_STRING_DICT_VALUE( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain_use_simplejson ); if (unlikely( tmp_cond_value_2 == NULL )) { tmp_cond_value_2 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_use_simplejson ); } if ( tmp_cond_value_2 == NULL ) { exception_type = INCREASE_REFCOUNT( PyExc_NameError ); exception_value = UNSTREAM_STRING( &constant_bin[ 27077 ], 36, 0 ); exception_tb = NULL; frame_module->f_lineno = 26; goto frame_exception_exit_1; } tmp_cond_truth_2 = CHECK_IF_TRUE( tmp_cond_value_2 ); if ( tmp_cond_truth_2 == -1 ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 26; goto frame_exception_exit_1; } if (tmp_cond_truth_2 == 1) { goto branch_yes_3; } else { goto branch_no_3; } branch_yes_3:; tmp_import_globals_5 = ((PyModuleObject *)module_django$utils$simplejson)->md_dict; frame_module->f_lineno = 27; tmp_star_imported_1 = IMPORT_MODULE( const_str_plain_simplejson, tmp_import_globals_5, tmp_import_globals_5, const_tuple_str_chr_42_tuple, const_int_0 ); if ( tmp_star_imported_1 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 27; goto frame_exception_exit_1; } tmp_result = IMPORT_MODULE_STAR( module_django$utils$simplejson, true, tmp_star_imported_1 ); if ( tmp_result == false ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); Py_DECREF( tmp_star_imported_1 ); frame_module->f_lineno = 27; goto frame_exception_exit_1; } Py_DECREF( tmp_star_imported_1 ); tmp_import_globals_6 = ((PyModuleObject *)module_django$utils$simplejson)->md_dict; frame_module->f_lineno = 28; tmp_import_name_from_3 = IMPORT_MODULE( const_str_plain_simplejson, tmp_import_globals_6, tmp_import_globals_6, const_tuple_str_plain___version___tuple, const_int_0 ); if ( tmp_import_name_from_3 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 28; goto frame_exception_exit_1; } tmp_assign_source_12 = IMPORT_NAME( tmp_import_name_from_3, const_str_plain___version__ ); Py_DECREF( tmp_import_name_from_3 ); if ( tmp_assign_source_12 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 28; goto frame_exception_exit_1; } UPDATE_STRING_DICT1( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain___version__, tmp_assign_source_12 ); goto branch_end_3; branch_no_3:; tmp_import_globals_7 = ((PyModuleObject *)module_django$utils$simplejson)->md_dict; frame_module->f_lineno = 30; tmp_star_imported_2 = IMPORT_MODULE( const_str_plain_json, tmp_import_globals_7, tmp_import_globals_7, const_tuple_str_chr_42_tuple, const_int_0 ); if ( tmp_star_imported_2 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 30; goto frame_exception_exit_1; } tmp_result = IMPORT_MODULE_STAR( module_django$utils$simplejson, true, tmp_star_imported_2 ); if ( tmp_result == false ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); Py_DECREF( tmp_star_imported_2 ); frame_module->f_lineno = 30; goto frame_exception_exit_1; } Py_DECREF( tmp_star_imported_2 ); tmp_import_globals_8 = ((PyModuleObject *)module_django$utils$simplejson)->md_dict; frame_module->f_lineno = 31; tmp_import_name_from_4 = IMPORT_MODULE( const_str_plain_json, tmp_import_globals_8, tmp_import_globals_8, const_tuple_str_plain___version___tuple, const_int_0 ); if ( tmp_import_name_from_4 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 31; goto frame_exception_exit_1; } tmp_assign_source_13 = IMPORT_NAME( tmp_import_name_from_4, const_str_plain___version__ ); Py_DECREF( tmp_import_name_from_4 ); if ( tmp_assign_source_13 == NULL ) { assert( ERROR_OCCURED() ); PyErr_Fetch( &exception_type, &exception_value, (PyObject **)&exception_tb ); frame_module->f_lineno = 31; goto frame_exception_exit_1; } UPDATE_STRING_DICT1( moduledict_django$utils$simplejson, (Nuitka_StringObject *)const_str_plain___version__, tmp_assign_source_13 ); branch_end_3:; // Restore frame exception if necessary. #if 1 RESTORE_FRAME_EXCEPTION( frame_module ); #endif popFrameStack(); assertFrameObject( frame_module ); Py_DECREF( frame_module ); goto frame_no_exception_1; frame_exception_exit_1:; #if 1 RESTORE_FRAME_EXCEPTION( frame_module ); #endif if ( exception_tb == NULL ) { exception_tb = MAKE_TRACEBACK( INCREASE_REFCOUNT( frame_module ) ); } else if ( exception_tb->tb_frame != frame_module ) { PyTracebackObject *traceback_new = (PyTracebackObject *)MAKE_TRACEBACK( INCREASE_REFCOUNT( frame_module ) ); traceback_new->tb_next = exception_tb; exception_tb = traceback_new; } // Put the previous frame back on top. popFrameStack(); #if PYTHON_VERSION >= 340 frame_module->f_executing -= 1; #endif Py_DECREF( frame_module ); // Return the error. goto module_exception_exit; frame_no_exception_1:; return MOD_RETURN_VALUE( module_django$utils$simplejson ); module_exception_exit: PyErr_Restore( exception_type, exception_value, (PyObject *)exception_tb ); return MOD_RETURN_VALUE( NULL ); }
// The module function definitions. static PyObject *impl_function_1_CacheControl_of_pip$_vendor$cachecontrol$wrapper( Nuitka_FunctionObject const *self, PyObject **python_pars ) { // Preserve error status for checks #ifndef __NUITKA_NO_ASSERT__ NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED(); #endif // Local variable declarations. PyObject *par_sess = python_pars[ 0 ]; PyObject *par_cache = python_pars[ 1 ]; PyObject *par_cache_etags = python_pars[ 2 ]; PyObject *par_serializer = python_pars[ 3 ]; PyObject *par_heuristic = python_pars[ 4 ]; PyObject *var_adapter = NULL; PyObject *exception_type = NULL, *exception_value = NULL; PyTracebackObject *exception_tb = NULL; NUITKA_MAY_BE_UNUSED int exception_lineno = -1; PyObject *exception_keeper_type_1; PyObject *exception_keeper_value_1; PyTracebackObject *exception_keeper_tb_1; NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1; PyObject *tmp_args_element_name_1; PyObject *tmp_args_element_name_2; PyObject *tmp_args_element_name_3; PyObject *tmp_args_element_name_4; PyObject *tmp_args_name_1; PyObject *tmp_assign_source_1; PyObject *tmp_assign_source_2; PyObject *tmp_called_name_1; PyObject *tmp_called_name_2; PyObject *tmp_called_name_3; PyObject *tmp_called_name_4; PyObject *tmp_dict_key_1; PyObject *tmp_dict_key_2; PyObject *tmp_dict_key_3; PyObject *tmp_dict_value_1; PyObject *tmp_dict_value_2; PyObject *tmp_dict_value_3; PyObject *tmp_frame_locals; PyObject *tmp_kw_name_1; int tmp_or_left_truth_1; PyObject *tmp_or_left_value_1; PyObject *tmp_or_right_value_1; PyObject *tmp_return_value; PyObject *tmp_source_name_1; PyObject *tmp_source_name_2; PyObject *tmp_tuple_element_1; NUITKA_MAY_BE_UNUSED PyObject *tmp_unused; static PyFrameObject *cache_frame_function = NULL; PyFrameObject *frame_function; tmp_return_value = NULL; // Actual function code. // Tried code: MAKE_OR_REUSE_FRAME( cache_frame_function, codeobj_079a8ba6ceda22079d731bf3f2f28ee9, module_pip$_vendor$cachecontrol$wrapper ); frame_function = cache_frame_function; // Push the new frame as the currently active one. pushFrameStack( frame_function ); // Mark the frame object as in use, ref count 1 will be up for reuse. Py_INCREF( frame_function ); assert( Py_REFCNT( frame_function ) == 2 ); // Frame stack #if PYTHON_VERSION >= 340 frame_function->f_executing += 1; #endif // Framed code: tmp_or_left_value_1 = par_cache; tmp_or_left_truth_1 = CHECK_IF_TRUE( tmp_or_left_value_1 ); if ( tmp_or_left_truth_1 == -1 ) { assert( ERROR_OCCURRED() ); FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); exception_lineno = 11; goto frame_exception_exit_1; } if ( tmp_or_left_truth_1 == 1 ) { goto or_left_1; } else { goto or_right_1; } or_right_1:; tmp_called_name_1 = GET_STRING_DICT_VALUE( moduledict_pip$_vendor$cachecontrol$wrapper, (Nuitka_StringObject *)const_str_plain_DictCache ); if (unlikely( tmp_called_name_1 == NULL )) { tmp_called_name_1 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_DictCache ); } if ( tmp_called_name_1 == NULL ) { exception_type = PyExc_NameError; Py_INCREF( exception_type ); exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "DictCache" ); exception_tb = NULL; NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); CHAIN_EXCEPTION( exception_value ); exception_lineno = 11; goto frame_exception_exit_1; } frame_function->f_lineno = 11; tmp_or_right_value_1 = CALL_FUNCTION_NO_ARGS( tmp_called_name_1 ); if ( tmp_or_right_value_1 == NULL ) { assert( ERROR_OCCURRED() ); FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); exception_lineno = 11; goto frame_exception_exit_1; } tmp_assign_source_1 = tmp_or_right_value_1; goto or_end_1; or_left_1:; Py_INCREF( tmp_or_left_value_1 ); tmp_assign_source_1 = tmp_or_left_value_1; or_end_1:; { PyObject *old = par_cache; par_cache = tmp_assign_source_1; Py_XDECREF( old ); } tmp_called_name_2 = GET_STRING_DICT_VALUE( moduledict_pip$_vendor$cachecontrol$wrapper, (Nuitka_StringObject *)const_str_plain_CacheControlAdapter ); if (unlikely( tmp_called_name_2 == NULL )) { tmp_called_name_2 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_CacheControlAdapter ); } if ( tmp_called_name_2 == NULL ) { exception_type = PyExc_NameError; Py_INCREF( exception_type ); exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "CacheControlAdapter" ); exception_tb = NULL; NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); CHAIN_EXCEPTION( exception_value ); exception_lineno = 12; goto frame_exception_exit_1; } tmp_args_name_1 = PyTuple_New( 1 ); tmp_tuple_element_1 = par_cache; Py_INCREF( tmp_tuple_element_1 ); PyTuple_SET_ITEM( tmp_args_name_1, 0, tmp_tuple_element_1 ); tmp_kw_name_1 = _PyDict_NewPresized( 3 ); tmp_dict_key_1 = const_str_plain_cache_etags; tmp_dict_value_1 = par_cache_etags; PyDict_SetItem( tmp_kw_name_1, tmp_dict_key_1, tmp_dict_value_1 ); tmp_dict_key_2 = const_str_plain_serializer; tmp_dict_value_2 = par_serializer; PyDict_SetItem( tmp_kw_name_1, tmp_dict_key_2, tmp_dict_value_2 ); tmp_dict_key_3 = const_str_plain_heuristic; tmp_dict_value_3 = par_heuristic; PyDict_SetItem( tmp_kw_name_1, tmp_dict_key_3, tmp_dict_value_3 ); frame_function->f_lineno = 16; tmp_assign_source_2 = CALL_FUNCTION( tmp_called_name_2, tmp_args_name_1, tmp_kw_name_1 ); Py_DECREF( tmp_args_name_1 ); Py_DECREF( tmp_kw_name_1 ); if ( tmp_assign_source_2 == NULL ) { assert( ERROR_OCCURRED() ); FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); exception_lineno = 16; goto frame_exception_exit_1; } assert( var_adapter == NULL ); var_adapter = tmp_assign_source_2; tmp_source_name_1 = par_sess; tmp_called_name_3 = LOOKUP_ATTRIBUTE( tmp_source_name_1, const_str_plain_mount ); if ( tmp_called_name_3 == NULL ) { assert( ERROR_OCCURRED() ); FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); exception_lineno = 18; goto frame_exception_exit_1; } tmp_args_element_name_1 = const_str_digest_7c06a402579f6f9d9db7f3e04da983fc; tmp_args_element_name_2 = var_adapter; if ( tmp_args_element_name_2 == NULL ) { Py_DECREF( tmp_called_name_3 ); exception_type = PyExc_UnboundLocalError; Py_INCREF( exception_type ); exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "adapter" ); exception_tb = NULL; NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); CHAIN_EXCEPTION( exception_value ); exception_lineno = 18; goto frame_exception_exit_1; } frame_function->f_lineno = 18; { PyObject *call_args[] = { tmp_args_element_name_1, tmp_args_element_name_2 }; tmp_unused = CALL_FUNCTION_WITH_ARGS2( tmp_called_name_3, call_args ); } Py_DECREF( tmp_called_name_3 ); if ( tmp_unused == NULL ) { assert( ERROR_OCCURRED() ); FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); exception_lineno = 18; goto frame_exception_exit_1; } Py_DECREF( tmp_unused ); tmp_source_name_2 = par_sess; if ( tmp_source_name_2 == NULL ) { exception_type = PyExc_UnboundLocalError; Py_INCREF( exception_type ); exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "sess" ); exception_tb = NULL; NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); CHAIN_EXCEPTION( exception_value ); exception_lineno = 19; goto frame_exception_exit_1; } tmp_called_name_4 = LOOKUP_ATTRIBUTE( tmp_source_name_2, const_str_plain_mount ); if ( tmp_called_name_4 == NULL ) { assert( ERROR_OCCURRED() ); FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); exception_lineno = 19; goto frame_exception_exit_1; } tmp_args_element_name_3 = const_str_digest_504b77692b694460b8c25198a52c83ba; tmp_args_element_name_4 = var_adapter; if ( tmp_args_element_name_4 == NULL ) { Py_DECREF( tmp_called_name_4 ); exception_type = PyExc_UnboundLocalError; Py_INCREF( exception_type ); exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "adapter" ); exception_tb = NULL; NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); CHAIN_EXCEPTION( exception_value ); exception_lineno = 19; goto frame_exception_exit_1; } frame_function->f_lineno = 19; { PyObject *call_args[] = { tmp_args_element_name_3, tmp_args_element_name_4 }; tmp_unused = CALL_FUNCTION_WITH_ARGS2( tmp_called_name_4, call_args ); } Py_DECREF( tmp_called_name_4 ); if ( tmp_unused == NULL ) { assert( ERROR_OCCURRED() ); FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); exception_lineno = 19; goto frame_exception_exit_1; } Py_DECREF( tmp_unused ); tmp_return_value = par_sess; if ( tmp_return_value == NULL ) { exception_type = PyExc_UnboundLocalError; Py_INCREF( exception_type ); exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "sess" ); exception_tb = NULL; NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); CHAIN_EXCEPTION( exception_value ); exception_lineno = 21; goto frame_exception_exit_1; } Py_INCREF( tmp_return_value ); goto frame_return_exit_1; #if 0 RESTORE_FRAME_EXCEPTION( frame_function ); #endif // Put the previous frame back on top. popFrameStack(); #if PYTHON_VERSION >= 340 frame_function->f_executing -= 1; #endif Py_DECREF( frame_function ); goto frame_no_exception_1; frame_return_exit_1:; #if 0 RESTORE_FRAME_EXCEPTION( frame_function ); #endif popFrameStack(); #if PYTHON_VERSION >= 340 frame_function->f_executing -= 1; #endif Py_DECREF( frame_function ); goto try_return_handler_1; frame_exception_exit_1:; #if 0 RESTORE_FRAME_EXCEPTION( frame_function ); #endif { bool needs_detach = false; if ( exception_tb == NULL ) { exception_tb = MAKE_TRACEBACK( frame_function, exception_lineno ); needs_detach = true; } else if ( exception_lineno != -1 ) { PyTracebackObject *traceback_new = MAKE_TRACEBACK( frame_function, exception_lineno ); traceback_new->tb_next = exception_tb; exception_tb = traceback_new; needs_detach = true; } if (needs_detach) { tmp_frame_locals = PyDict_New(); if ( par_sess ) { int res = PyDict_SetItem( tmp_frame_locals, const_str_plain_sess, par_sess ); assert( res == 0 ); } if ( par_cache ) { int res = PyDict_SetItem( tmp_frame_locals, const_str_plain_cache, par_cache ); assert( res == 0 ); } if ( par_cache_etags ) { int res = PyDict_SetItem( tmp_frame_locals, const_str_plain_cache_etags, par_cache_etags ); assert( res == 0 ); } if ( par_serializer ) { int res = PyDict_SetItem( tmp_frame_locals, const_str_plain_serializer, par_serializer ); assert( res == 0 ); } if ( par_heuristic ) { int res = PyDict_SetItem( tmp_frame_locals, const_str_plain_heuristic, par_heuristic ); assert( res == 0 ); } if ( var_adapter ) { int res = PyDict_SetItem( tmp_frame_locals, const_str_plain_adapter, var_adapter ); assert( res == 0 ); } detachFrame( exception_tb, tmp_frame_locals ); } } popFrameStack(); #if PYTHON_VERSION >= 340 frame_function->f_executing -= 1; #endif Py_DECREF( frame_function ); // Return the error. goto try_except_handler_1; frame_no_exception_1:; // tried codes exits in all cases NUITKA_CANNOT_GET_HERE( function_1_CacheControl_of_pip$_vendor$cachecontrol$wrapper ); return NULL; // Return handler code: try_return_handler_1:; Py_XDECREF( par_sess ); par_sess = NULL; Py_XDECREF( par_cache ); par_cache = NULL; Py_XDECREF( par_cache_etags ); par_cache_etags = NULL; Py_XDECREF( par_serializer ); par_serializer = NULL; Py_XDECREF( par_heuristic ); par_heuristic = NULL; Py_XDECREF( var_adapter ); var_adapter = NULL; goto function_return_exit; // Exception handler code: try_except_handler_1:; exception_keeper_type_1 = exception_type; exception_keeper_value_1 = exception_value; exception_keeper_tb_1 = exception_tb; exception_keeper_lineno_1 = exception_lineno; exception_type = NULL; exception_value = NULL; exception_tb = NULL; exception_lineno = -1; Py_XDECREF( par_sess ); par_sess = NULL; Py_XDECREF( par_cache ); par_cache = NULL; Py_XDECREF( par_cache_etags ); par_cache_etags = NULL; Py_XDECREF( par_serializer ); par_serializer = NULL; Py_XDECREF( par_heuristic ); par_heuristic = NULL; Py_XDECREF( var_adapter ); var_adapter = NULL; // Re-raise. exception_type = exception_keeper_type_1; exception_value = exception_keeper_value_1; exception_tb = exception_keeper_tb_1; exception_lineno = exception_keeper_lineno_1; goto function_exception_exit; // End of try: // Return statement must have exited already. NUITKA_CANNOT_GET_HERE( function_1_CacheControl_of_pip$_vendor$cachecontrol$wrapper ); return NULL; function_exception_exit: assert( exception_type ); RESTORE_ERROR_OCCURRED( exception_type, exception_value, exception_tb ); return NULL; function_return_exit: CHECK_OBJECT( tmp_return_value ); assert( had_error || !ERROR_OCCURRED() ); return tmp_return_value; }
PyObject *CALL_FUNCTION_WITH_ARGS9( PyObject *called, PyObject *arg1, PyObject *arg2, PyObject *arg3, PyObject *arg4, PyObject *arg5, PyObject *arg6, PyObject *arg7, PyObject *arg8, PyObject *arg9 ) { assertObject( called ); // Check if arguments are valid objects in debug mode. #ifndef __NUITKA_NO_ASSERT__ PyObject *args_for_test[] = { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }; for( size_t i = 0; i < sizeof( args_for_test ) / sizeof( PyObject * ); i++ ) { assertObject( args_for_test[ i ] ); } #endif if ( Nuitka_Function_Check( called ) ) { if (unlikely( Py_EnterRecursiveCall( (char *)" while calling a Python object" ) )) { return NULL; } Nuitka_FunctionObject *function = (Nuitka_FunctionObject *)called; PyObject *result; PyObject *args[] = { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }; if ( function->m_direct_arg_parser ) { result = function->m_direct_arg_parser( function, args, sizeof( args ) / sizeof( PyObject * ) ); } else { result = function->m_code( function, args, sizeof( args ) / sizeof( PyObject * ), NULL ); } Py_LeaveRecursiveCall(); return result; } else if ( Nuitka_Method_Check( called ) ) { Nuitka_MethodObject *method = (Nuitka_MethodObject *)called; // Unbound method without arguments, let the error path be slow. if ( method->m_object != NULL ) { if (unlikely( Py_EnterRecursiveCall( (char *)" while calling a Python object" ) )) { return NULL; } PyObject *args[] = { method->m_object, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }; PyObject *result; if ( method->m_function->m_direct_arg_parser ) { result = method->m_function->m_direct_arg_parser( method->m_function, args, sizeof( args ) / sizeof( PyObject * ) ); } else { result = method->m_function->m_code( method->m_function, args, sizeof( args ) / sizeof( PyObject * ), NULL ); } Py_LeaveRecursiveCall(); return result; } } else if ( PyFunction_Check( called ) ) { PyObject *args[] = { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }; return fast_python_call( called, args, sizeof( args ) / sizeof( PyObject * ) ); } PyObject *args[] = { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }; PyObject *pos_args = MAKE_TUPLE( args, sizeof( args ) / sizeof( PyObject * ) ); PyObject *result = CALL_FUNCTION( called, pos_args, NULL ); Py_DECREF( pos_args ); return result; }
Var JavascriptMap::NewInstance(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); JavascriptLibrary* library = scriptContext->GetLibrary(); AUTO_TAG_NATIVE_LIBRARY_ENTRY(function, callInfo, _u("Map")); Var newTarget = callInfo.Flags & CallFlags_NewTarget ? args.Values[args.Info.Count] : args[0]; bool isCtorSuperCall = (callInfo.Flags & CallFlags_New) && newTarget != nullptr && !JavascriptOperators::IsUndefined(newTarget); Assert(isCtorSuperCall || !(callInfo.Flags & CallFlags_New) || args[0] == nullptr); CHAKRATEL_LANGSTATS_INC_BUILTINCOUNT(MapCount); JavascriptMap* mapObject = nullptr; if (callInfo.Flags & CallFlags_New) { mapObject = library->CreateMap(); } else { JavascriptError::ThrowTypeErrorVar(scriptContext, JSERR_NeedObjectOfType, _u("Map"), _u("Map")); } Assert(mapObject != nullptr); Var iterable = (args.Info.Count > 1) ? args[1] : library->GetUndefined(); RecyclableObject* iter = nullptr; RecyclableObject* adder = nullptr; if (JavascriptConversion::CheckObjectCoercible(iterable, scriptContext)) { iter = JavascriptOperators::GetIterator(iterable, scriptContext); Var adderVar = JavascriptOperators::GetProperty(mapObject, PropertyIds::set, scriptContext); if (!JavascriptConversion::IsCallable(adderVar)) { JavascriptError::ThrowTypeError(scriptContext, JSERR_NeedFunction); } adder = RecyclableObject::FromVar(adderVar); } if (mapObject->map != nullptr) { JavascriptError::ThrowTypeErrorVar(scriptContext, JSERR_ObjectIsAlreadyInitialized, _u("Map"), _u("Map")); } mapObject->map = RecyclerNew(scriptContext->GetRecycler(), MapDataMap, scriptContext->GetRecycler()); if (iter != nullptr) { Var undefined = library->GetUndefined(); JavascriptOperators::DoIteratorStepAndValue(iter, scriptContext, [&](Var nextItem) { if (!JavascriptOperators::IsObject(nextItem)) { JavascriptError::ThrowTypeError(scriptContext, JSERR_NeedObject); } RecyclableObject* obj = RecyclableObject::FromVar(nextItem); Var key, value; if (!JavascriptOperators::GetItem(obj, 0u, &key, scriptContext)) { key = undefined; } if (!JavascriptOperators::GetItem(obj, 1u, &value, scriptContext)) { value = undefined; } // CONSIDER: if adder is the default built-in, fast path it and skip the JS call? CALL_FUNCTION(adder, CallInfo(CallFlags_Value, 3), mapObject, key, value); }); } return isCtorSuperCall ? JavascriptOperators::OrdinaryCreateFromConstructor(RecyclableObject::FromVar(newTarget), mapObject, nullptr, scriptContext) : mapObject; }