Nuitka-winsvc 2.2.3__cp311-cp311-win_amd64.whl → 2.3__cp311-cp311-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. {Nuitka_winsvc-2.2.3.dist-info → Nuitka_winsvc-2.3.dist-info}/METADATA +1 -1
  2. {Nuitka_winsvc-2.2.3.dist-info → Nuitka_winsvc-2.3.dist-info}/RECORD +198 -197
  3. nuitka/Bytecodes.py +4 -2
  4. nuitka/HardImportRegistry.py +1 -0
  5. nuitka/MainControl.py +16 -10
  6. nuitka/ModuleRegistry.py +15 -0
  7. nuitka/OptionParsing.py +30 -8
  8. nuitka/Options.py +104 -44
  9. nuitka/PostProcessing.py +9 -8
  10. nuitka/PythonVersions.py +2 -1
  11. nuitka/Serialization.py +47 -30
  12. nuitka/Version.py +1 -1
  13. nuitka/build/Backend.scons +46 -19
  14. nuitka/build/CCompilerVersion.scons +3 -3
  15. nuitka/build/Onefile.scons +4 -4
  16. nuitka/build/SconsCaching.py +3 -2
  17. nuitka/build/SconsCompilerSettings.py +11 -5
  18. nuitka/build/SconsInterface.py +22 -6
  19. nuitka/build/SconsUtils.py +9 -1
  20. nuitka/build/include/nuitka/allocator.h +58 -2
  21. nuitka/build/include/nuitka/compiled_frame.h +48 -13
  22. nuitka/build/include/nuitka/compiled_function.h +4 -0
  23. nuitka/build/include/nuitka/constants.h +6 -0
  24. nuitka/build/include/nuitka/exception_groups.h +6 -6
  25. nuitka/build/include/nuitka/exceptions.h +3 -3
  26. nuitka/build/include/nuitka/freelists.h +11 -0
  27. nuitka/build/include/nuitka/helper/dictionaries.h +5 -4
  28. nuitka/build/include/nuitka/helper/lists.h +5 -5
  29. nuitka/build/include/nuitka/helper/lists_generated.h +12 -12
  30. nuitka/build/include/nuitka/helper/sequences.h +6 -0
  31. nuitka/build/include/nuitka/helper/slices.h +14 -8
  32. nuitka/build/include/nuitka/helper/subscripts.h +1 -184
  33. nuitka/build/include/nuitka/helper/tuples.h +42 -33
  34. nuitka/build/include/nuitka/importing.h +5 -0
  35. nuitka/build/include/nuitka/prelude.h +35 -2
  36. nuitka/build/include/nuitka/safe_string_ops.h +1 -0
  37. nuitka/build/include/nuitka/threading.h +13 -10
  38. nuitka/build/static_src/CompiledAsyncgenType.c +19 -8
  39. nuitka/build/static_src/CompiledCellType.c +1 -1
  40. nuitka/build/static_src/CompiledCodeHelpers.c +18 -16
  41. nuitka/build/static_src/CompiledCoroutineType.c +23 -19
  42. nuitka/build/static_src/CompiledFrameType.c +46 -34
  43. nuitka/build/static_src/CompiledFunctionType.c +55 -34
  44. nuitka/build/static_src/CompiledGeneratorType.c +21 -19
  45. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +127 -130
  46. nuitka/build/static_src/CompiledMethodType.c +15 -17
  47. nuitka/build/static_src/HelpersAllocator.c +71 -0
  48. nuitka/build/static_src/HelpersAttributes.c +1 -1
  49. nuitka/build/static_src/HelpersBuiltin.c +5 -5
  50. nuitka/build/static_src/HelpersBytes.c +2 -2
  51. nuitka/build/static_src/HelpersCalling.c +3 -0
  52. nuitka/build/static_src/HelpersCallingGenerated.c +131 -131
  53. nuitka/build/static_src/HelpersComparisonEq.c +329 -329
  54. nuitka/build/static_src/HelpersComparisonEqUtils.c +3 -1
  55. nuitka/build/static_src/HelpersComparisonGe.c +322 -322
  56. nuitka/build/static_src/HelpersComparisonGt.c +321 -321
  57. nuitka/build/static_src/HelpersComparisonLe.c +322 -322
  58. nuitka/build/static_src/HelpersComparisonLt.c +321 -321
  59. nuitka/build/static_src/HelpersComparisonNe.c +329 -329
  60. nuitka/build/static_src/HelpersConsole.c +96 -0
  61. nuitka/build/static_src/HelpersConstantsBlob.c +10 -6
  62. nuitka/build/static_src/HelpersDeepcopy.c +10 -8
  63. nuitka/build/static_src/HelpersDictionaries.c +17 -11
  64. nuitka/build/static_src/HelpersDictionariesGenerated.c +65 -29
  65. nuitka/build/static_src/HelpersExceptions.c +107 -9
  66. nuitka/build/static_src/HelpersFilesystemPaths.c +64 -4
  67. nuitka/build/static_src/HelpersFloats.c +20 -14
  68. nuitka/build/static_src/HelpersImport.c +1 -1
  69. nuitka/build/static_src/HelpersJitSources.c +1 -1
  70. nuitka/build/static_src/HelpersLists.c +29 -19
  71. nuitka/build/static_src/HelpersListsGenerated.c +24 -24
  72. nuitka/build/static_src/HelpersMatching.c +32 -5
  73. nuitka/build/static_src/HelpersOperationBinaryAdd.c +90 -63
  74. nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +4 -4
  75. nuitka/build/static_src/HelpersOperationBinaryBitand.c +33 -33
  76. nuitka/build/static_src/HelpersOperationBinaryBitor.c +33 -33
  77. nuitka/build/static_src/HelpersOperationBinaryBitxor.c +33 -33
  78. nuitka/build/static_src/HelpersOperationBinaryDivmod.c +24 -24
  79. nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +24 -24
  80. nuitka/build/static_src/HelpersOperationBinaryLshift.c +30 -30
  81. nuitka/build/static_src/HelpersOperationBinaryMatmult.c +7 -7
  82. nuitka/build/static_src/HelpersOperationBinaryMod.c +90 -90
  83. nuitka/build/static_src/HelpersOperationBinaryMult.c +64 -58
  84. nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +24 -24
  85. nuitka/build/static_src/HelpersOperationBinaryPow.c +27 -27
  86. nuitka/build/static_src/HelpersOperationBinaryRshift.c +30 -30
  87. nuitka/build/static_src/HelpersOperationBinarySub.c +24 -24
  88. nuitka/build/static_src/HelpersOperationBinaryTruediv.c +24 -24
  89. nuitka/build/static_src/HelpersOperationInplaceAdd.c +67 -49
  90. nuitka/build/static_src/HelpersOperationInplaceBitand.c +25 -25
  91. nuitka/build/static_src/HelpersOperationInplaceBitor.c +25 -25
  92. nuitka/build/static_src/HelpersOperationInplaceBitxor.c +25 -25
  93. nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +28 -28
  94. nuitka/build/static_src/HelpersOperationInplaceLshift.c +18 -18
  95. nuitka/build/static_src/HelpersOperationInplaceMatmult.c +10 -10
  96. nuitka/build/static_src/HelpersOperationInplaceMod.c +70 -70
  97. nuitka/build/static_src/HelpersOperationInplaceMult.c +33 -33
  98. nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +28 -28
  99. nuitka/build/static_src/HelpersOperationInplacePow.c +28 -28
  100. nuitka/build/static_src/HelpersOperationInplaceRshift.c +18 -18
  101. nuitka/build/static_src/HelpersOperationInplaceSub.c +28 -28
  102. nuitka/build/static_src/HelpersOperationInplaceTruediv.c +28 -28
  103. nuitka/build/static_src/HelpersRaising.c +10 -3
  104. nuitka/build/static_src/HelpersSafeStrings.c +14 -4
  105. nuitka/build/static_src/HelpersSlices.c +12 -5
  106. nuitka/build/static_src/HelpersStrings.c +1 -1
  107. nuitka/build/static_src/HelpersTuples.c +20 -15
  108. nuitka/build/static_src/InspectPatcher.c +74 -6
  109. nuitka/build/static_src/MainProgram.c +90 -25
  110. nuitka/build/static_src/MetaPathBasedLoader.c +81 -45
  111. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +2 -2
  112. nuitka/build/static_src/OnefileBootstrap.c +16 -17
  113. nuitka/code_generation/CodeGeneration.py +5 -2
  114. nuitka/code_generation/ConstantCodes.py +2 -2
  115. nuitka/code_generation/DictCodes.py +2 -2
  116. nuitka/code_generation/GlobalConstants.py +5 -0
  117. nuitka/code_generation/GlobalsLocalsCodes.py +2 -2
  118. nuitka/code_generation/ListCodes.py +2 -2
  119. nuitka/code_generation/LocalsDictCodes.py +1 -1
  120. nuitka/code_generation/ModuleCodes.py +19 -0
  121. nuitka/code_generation/PackageResourceCodes.py +14 -0
  122. nuitka/code_generation/SliceCodes.py +3 -3
  123. nuitka/code_generation/SubscriptCodes.py +5 -13
  124. nuitka/code_generation/TupleCodes.py +1 -1
  125. nuitka/code_generation/c_types/CTypePyObjectPointers.py +7 -7
  126. nuitka/code_generation/templates/CodeTemplatesConstants.py +7 -5
  127. nuitka/code_generation/templates/CodeTemplatesLoader.py +2 -0
  128. nuitka/code_generation/templates/CodeTemplatesModules.py +78 -54
  129. nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +1 -1
  130. nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +8 -8
  131. nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +5 -5
  132. nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +2 -2
  133. nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +2 -2
  134. nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +57 -21
  135. nuitka/code_generation/templates_c/HelperImportHard.c.j2 +1 -1
  136. nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +5 -5
  137. nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +18 -18
  138. nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +11 -11
  139. nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +3 -3
  140. nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +3 -3
  141. nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +7 -7
  142. nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +3 -3
  143. nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +11 -11
  144. nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +7 -7
  145. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +10 -10
  146. nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +1 -1
  147. nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +3 -3
  148. nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +4 -1
  149. nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +4 -1
  150. nuitka/finalizations/FinalizeMarkups.py +0 -18
  151. nuitka/freezer/DependsExe.py +9 -4
  152. nuitka/freezer/DllDependenciesMacOS.py +1 -1
  153. nuitka/freezer/DllDependenciesWin32.py +1 -1
  154. nuitka/freezer/ImportDetection.py +1 -0
  155. nuitka/freezer/IncludedDataFiles.py +13 -4
  156. nuitka/freezer/Onefile.py +0 -1
  157. nuitka/freezer/Standalone.py +3 -1
  158. nuitka/importing/ImportCache.py +3 -2
  159. nuitka/importing/Importing.py +16 -3
  160. nuitka/importing/StandardLibrary.py +4 -0
  161. nuitka/nodes/ChildrenHavingMixins.py +2 -0
  162. nuitka/nodes/ExpressionBasesGenerated.py +4 -0
  163. nuitka/nodes/HardImportNodesGenerated.py +83 -0
  164. nuitka/nodes/ModuleNodes.py +10 -2
  165. nuitka/nodes/OsSysNodes.py +16 -0
  166. nuitka/nodes/SubscriptNodes.py +3 -3
  167. nuitka/plugins/PluginBase.py +2 -0
  168. nuitka/plugins/standard/DataFilesPlugin.py +22 -1
  169. nuitka/plugins/standard/DillPlugin/DillPlugin.c +3 -3
  170. nuitka/plugins/standard/OptionsNannyPlugin.py +9 -41
  171. nuitka/plugins/standard/PkgResourcesPlugin.py +8 -2
  172. nuitka/plugins/standard/PySidePyQtPlugin.py +3 -0
  173. nuitka/plugins/standard/standard.nuitka-package.config.yml +18 -12
  174. nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +2 -2
  175. nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +2 -2
  176. nuitka/specs/HardImportSpecs.py +3 -0
  177. nuitka/specs/ParameterSpecs.py +26 -15
  178. nuitka/tools/general/find_module/FindModuleCode.py +3 -2
  179. nuitka/tools/specialize/CTypeDescriptions.py +11 -9
  180. nuitka/tools/testing/Common.py +12 -5
  181. nuitka/tools/testing/SearchModes.py +5 -1
  182. nuitka/tools/watch/GitHub.py +1 -7
  183. nuitka/tree/Building.py +9 -6
  184. nuitka/tree/ReformulationMatchStatements.py +39 -3
  185. nuitka/tree/TreeHelpers.py +8 -0
  186. nuitka/utils/CStrings.py +7 -0
  187. nuitka/utils/Execution.py +10 -1
  188. nuitka/utils/FileOperations.py +21 -13
  189. nuitka/utils/Importing.py +24 -0
  190. nuitka/utils/ReExecute.py +7 -3
  191. nuitka/utils/SharedLibraries.py +17 -0
  192. nuitka/utils/Yaml.py +9 -1
  193. {Nuitka_winsvc-2.2.3.data → Nuitka_winsvc-2.3.data}/scripts/nuitka-run.bat +0 -0
  194. {Nuitka_winsvc-2.2.3.data → Nuitka_winsvc-2.3.data}/scripts/nuitka.bat +0 -0
  195. {Nuitka_winsvc-2.2.3.dist-info → Nuitka_winsvc-2.3.dist-info}/LICENSE.txt +0 -0
  196. {Nuitka_winsvc-2.2.3.dist-info → Nuitka_winsvc-2.3.dist-info}/WHEEL +0 -0
  197. {Nuitka_winsvc-2.2.3.dist-info → Nuitka_winsvc-2.3.dist-info}/entry_points.txt +0 -0
  198. {Nuitka_winsvc-2.2.3.dist-info → Nuitka_winsvc-2.3.dist-info}/top_level.txt +0 -0
@@ -80,7 +80,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_LSHIFT_OBJECT_LONG(PyObject
80
80
  goto exit_inplace_result_object;
81
81
  }
82
82
 
83
- Py_DECREF(x);
83
+ Py_DECREF_IMMORTAL(x);
84
84
  }
85
85
 
86
86
  {
@@ -106,7 +106,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_LSHIFT_OBJECT_LONG(PyObject
106
106
  goto exit_inplace_result_object;
107
107
  }
108
108
 
109
- Py_DECREF(x);
109
+ Py_DECREF_IMMORTAL(x);
110
110
  }
111
111
 
112
112
  if (slot2 != NULL) {
@@ -117,7 +117,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_LSHIFT_OBJECT_LONG(PyObject
117
117
  goto exit_inplace_result_object;
118
118
  }
119
119
 
120
- Py_DECREF(x);
120
+ Py_DECREF_IMMORTAL(x);
121
121
  }
122
122
 
123
123
  #if PYTHON_VERSION < 0x300
@@ -312,7 +312,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_LSHIFT_LONG_OBJECT(PyObject
312
312
  goto exit_inplace_result_object;
313
313
  }
314
314
 
315
- Py_DECREF(x);
315
+ Py_DECREF_IMMORTAL(x);
316
316
  slot2 = NULL;
317
317
  }
318
318
  }
@@ -324,7 +324,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_LSHIFT_LONG_OBJECT(PyObject
324
324
  goto exit_inplace_result_object;
325
325
  }
326
326
 
327
- Py_DECREF(x);
327
+ Py_DECREF_IMMORTAL(x);
328
328
  }
329
329
 
330
330
  if (slot2 != NULL) {
@@ -335,7 +335,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_LSHIFT_LONG_OBJECT(PyObject
335
335
  goto exit_inplace_result_object;
336
336
  }
337
337
 
338
- Py_DECREF(x);
338
+ Py_DECREF_IMMORTAL(x);
339
339
  }
340
340
 
341
341
  #if PYTHON_VERSION < 0x300
@@ -623,7 +623,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_LSHIFT_OBJECT_INT(PyObject *
623
623
  goto exit_inplace_result_object;
624
624
  }
625
625
 
626
- Py_DECREF(x);
626
+ Py_DECREF_IMMORTAL(x);
627
627
  }
628
628
 
629
629
  {
@@ -649,7 +649,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_LSHIFT_OBJECT_INT(PyObject *
649
649
  goto exit_inplace_result_object;
650
650
  }
651
651
 
652
- Py_DECREF(x);
652
+ Py_DECREF_IMMORTAL(x);
653
653
  }
654
654
 
655
655
  if (slot2 != NULL) {
@@ -660,7 +660,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_LSHIFT_OBJECT_INT(PyObject *
660
660
  goto exit_inplace_result_object;
661
661
  }
662
662
 
663
- Py_DECREF(x);
663
+ Py_DECREF_IMMORTAL(x);
664
664
  }
665
665
 
666
666
  #if PYTHON_VERSION < 0x300
@@ -913,7 +913,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_LSHIFT_INT_OBJECT(PyObject *
913
913
  goto exit_inplace_result_object;
914
914
  }
915
915
 
916
- Py_DECREF(x);
916
+ Py_DECREF_IMMORTAL(x);
917
917
  slot2 = NULL;
918
918
  }
919
919
  }
@@ -925,7 +925,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_LSHIFT_INT_OBJECT(PyObject *
925
925
  goto exit_inplace_result_object;
926
926
  }
927
927
 
928
- Py_DECREF(x);
928
+ Py_DECREF_IMMORTAL(x);
929
929
  }
930
930
 
931
931
  if (slot2 != NULL) {
@@ -936,7 +936,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_LSHIFT_INT_OBJECT(PyObject *
936
936
  goto exit_inplace_result_object;
937
937
  }
938
938
 
939
- Py_DECREF(x);
939
+ Py_DECREF_IMMORTAL(x);
940
940
  }
941
941
 
942
942
  #if PYTHON_VERSION < 0x300
@@ -1181,7 +1181,7 @@ static inline bool _INPLACE_OPERATION_LSHIFT_LONG_INT(PyObject **operand1, PyObj
1181
1181
  goto exit_inplace_result_object;
1182
1182
  }
1183
1183
 
1184
- Py_DECREF(x);
1184
+ Py_DECREF_IMMORTAL(x);
1185
1185
  }
1186
1186
 
1187
1187
  // Statically recognized that coercion is not possible with these types
@@ -1253,7 +1253,7 @@ static inline bool _INPLACE_OPERATION_LSHIFT_INT_LONG(PyObject **operand1, PyObj
1253
1253
  goto exit_inplace_result_object;
1254
1254
  }
1255
1255
 
1256
- Py_DECREF(x);
1256
+ Py_DECREF_IMMORTAL(x);
1257
1257
  }
1258
1258
 
1259
1259
  // Statically recognized that coercion is not possible with these types
@@ -1421,7 +1421,7 @@ static inline bool _INPLACE_OPERATION_LSHIFT_OBJECT_OBJECT(PyObject **operand1,
1421
1421
  goto exit_inplace_result_object;
1422
1422
  }
1423
1423
 
1424
- Py_DECREF(x);
1424
+ Py_DECREF_IMMORTAL(x);
1425
1425
  }
1426
1426
 
1427
1427
  {
@@ -1450,7 +1450,7 @@ static inline bool _INPLACE_OPERATION_LSHIFT_OBJECT_OBJECT(PyObject **operand1,
1450
1450
  goto exit_inplace_result_object;
1451
1451
  }
1452
1452
 
1453
- Py_DECREF(x);
1453
+ Py_DECREF_IMMORTAL(x);
1454
1454
  slot2 = NULL;
1455
1455
  }
1456
1456
  }
@@ -1462,7 +1462,7 @@ static inline bool _INPLACE_OPERATION_LSHIFT_OBJECT_OBJECT(PyObject **operand1,
1462
1462
  goto exit_inplace_result_object;
1463
1463
  }
1464
1464
 
1465
- Py_DECREF(x);
1465
+ Py_DECREF_IMMORTAL(x);
1466
1466
  }
1467
1467
 
1468
1468
  if (slot2 != NULL) {
@@ -1473,7 +1473,7 @@ static inline bool _INPLACE_OPERATION_LSHIFT_OBJECT_OBJECT(PyObject **operand1,
1473
1473
  goto exit_inplace_result_object;
1474
1474
  }
1475
1475
 
1476
- Py_DECREF(x);
1476
+ Py_DECREF_IMMORTAL(x);
1477
1477
  }
1478
1478
 
1479
1479
  #if PYTHON_VERSION < 0x300
@@ -85,7 +85,7 @@ static inline bool _INPLACE_OPERATION_MATMULT_OBJECT_LONG(PyObject **operand1, P
85
85
  goto exit_inplace_result_object;
86
86
  }
87
87
 
88
- Py_DECREF(x);
88
+ Py_DECREF_IMMORTAL(x);
89
89
  }
90
90
 
91
91
  {
@@ -101,7 +101,7 @@ static inline bool _INPLACE_OPERATION_MATMULT_OBJECT_LONG(PyObject **operand1, P
101
101
  goto exit_inplace_result_object;
102
102
  }
103
103
 
104
- Py_DECREF(x);
104
+ Py_DECREF_IMMORTAL(x);
105
105
  }
106
106
 
107
107
  // Statically recognized that coercion is not possible with Python3 only operator '@'
@@ -179,7 +179,7 @@ static inline bool _INPLACE_OPERATION_MATMULT_LONG_OBJECT(PyObject **operand1, P
179
179
  goto exit_inplace_result_object;
180
180
  }
181
181
 
182
- Py_DECREF(x);
182
+ Py_DECREF_IMMORTAL(x);
183
183
  }
184
184
 
185
185
  // Statically recognized that coercion is not possible with Python3 only operator '@'
@@ -287,7 +287,7 @@ static inline bool _INPLACE_OPERATION_MATMULT_OBJECT_FLOAT(PyObject **operand1,
287
287
  goto exit_inplace_result_object;
288
288
  }
289
289
 
290
- Py_DECREF(x);
290
+ Py_DECREF_IMMORTAL(x);
291
291
  }
292
292
 
293
293
  {
@@ -303,7 +303,7 @@ static inline bool _INPLACE_OPERATION_MATMULT_OBJECT_FLOAT(PyObject **operand1,
303
303
  goto exit_inplace_result_object;
304
304
  }
305
305
 
306
- Py_DECREF(x);
306
+ Py_DECREF_IMMORTAL(x);
307
307
  }
308
308
 
309
309
  // Statically recognized that coercion is not possible with Python3 only operator '@'
@@ -377,7 +377,7 @@ static inline bool _INPLACE_OPERATION_MATMULT_FLOAT_OBJECT(PyObject **operand1,
377
377
  goto exit_inplace_result_object;
378
378
  }
379
379
 
380
- Py_DECREF(x);
380
+ Py_DECREF_IMMORTAL(x);
381
381
  }
382
382
 
383
383
  // Statically recognized that coercion is not possible with Python3 only operator '@'
@@ -499,7 +499,7 @@ static inline bool _INPLACE_OPERATION_MATMULT_OBJECT_OBJECT(PyObject **operand1,
499
499
  goto exit_inplace_result_object;
500
500
  }
501
501
 
502
- Py_DECREF(x);
502
+ Py_DECREF_IMMORTAL(x);
503
503
  }
504
504
 
505
505
  {
@@ -530,7 +530,7 @@ static inline bool _INPLACE_OPERATION_MATMULT_OBJECT_OBJECT(PyObject **operand1,
530
530
  goto exit_inplace_result_object;
531
531
  }
532
532
 
533
- Py_DECREF(x);
533
+ Py_DECREF_IMMORTAL(x);
534
534
  slot2 = NULL;
535
535
  }
536
536
  }
@@ -542,7 +542,7 @@ static inline bool _INPLACE_OPERATION_MATMULT_OBJECT_OBJECT(PyObject **operand1,
542
542
  goto exit_inplace_result_object;
543
543
  }
544
544
 
545
- Py_DECREF(x);
545
+ Py_DECREF_IMMORTAL(x);
546
546
  }
547
547
 
548
548
  if (slot2 != NULL) {
@@ -553,7 +553,7 @@ static inline bool _INPLACE_OPERATION_MATMULT_OBJECT_OBJECT(PyObject **operand1,
553
553
  goto exit_inplace_result_object;
554
554
  }
555
555
 
556
- Py_DECREF(x);
556
+ Py_DECREF_IMMORTAL(x);
557
557
  }
558
558
 
559
559
  // Statically recognized that coercion is not possible with Python3 only operator '@'