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
@@ -23,7 +23,7 @@ static PyObject *COMPARE_GE_OBJECT_INT_INT(PyObject *operand1, PyObject *operand
23
23
 
24
24
  // Convert to target type.
25
25
  PyObject *result = BOOL_FROM(r);
26
- Py_INCREF(result);
26
+ Py_INCREF_IMMORTAL(result);
27
27
  return result;
28
28
  }
29
29
  #endif
@@ -58,7 +58,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_OBJECT(PyObject *operand1, PyObject *ope
58
58
  if (operand1 == operand2 && IS_SANE_TYPE(Py_TYPE(operand1))) {
59
59
  bool r = true;
60
60
  PyObject *result = BOOL_FROM(r);
61
- Py_INCREF(result);
61
+ Py_INCREF_IMMORTAL(result);
62
62
  return result;
63
63
  }
64
64
 
@@ -90,7 +90,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_OBJECT(PyObject *operand1, PyObject *ope
90
90
  return result;
91
91
  }
92
92
 
93
- Py_DECREF(result);
93
+ Py_DECREF_IMMORTAL(result);
94
94
  }
95
95
 
96
96
  // No rich comparison worked, but maybe compare works.
@@ -131,7 +131,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_OBJECT(PyObject *operand1, PyObject *ope
131
131
 
132
132
  bool r = c != 0;
133
133
  PyObject *result = BOOL_FROM(r);
134
- Py_INCREF(result);
134
+ Py_INCREF_IMMORTAL(result);
135
135
  return result;
136
136
  }
137
137
  }
@@ -151,7 +151,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_OBJECT(PyObject *operand1, PyObject *ope
151
151
  return result;
152
152
  }
153
153
 
154
- Py_DECREF(result);
154
+ Py_DECREF_IMMORTAL(result);
155
155
  }
156
156
  }
157
157
 
@@ -165,7 +165,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_OBJECT(PyObject *operand1, PyObject *ope
165
165
  return result;
166
166
  }
167
167
 
168
- Py_DECREF(result);
168
+ Py_DECREF_IMMORTAL(result);
169
169
  }
170
170
 
171
171
  f = RICHCOMPARE(type2);
@@ -178,7 +178,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_OBJECT(PyObject *operand1, PyObject *ope
178
178
  return result;
179
179
  }
180
180
 
181
- Py_DECREF(result);
181
+ Py_DECREF_IMMORTAL(result);
182
182
  }
183
183
 
184
184
  int c;
@@ -266,7 +266,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_OBJECT(PyObject *operand1, PyObject *ope
266
266
 
267
267
  bool r = c != 0;
268
268
  PyObject *result = BOOL_FROM(r);
269
- Py_INCREF(result);
269
+ Py_INCREF_IMMORTAL(result);
270
270
  return result;
271
271
  #else
272
272
  bool checked_reverse_op = false;
@@ -286,7 +286,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_OBJECT(PyObject *operand1, PyObject *ope
286
286
  return result;
287
287
  }
288
288
 
289
- Py_DECREF(result);
289
+ Py_DECREF_IMMORTAL(result);
290
290
  }
291
291
  }
292
292
 
@@ -301,7 +301,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_OBJECT(PyObject *operand1, PyObject *ope
301
301
  return result;
302
302
  }
303
303
 
304
- Py_DECREF(result);
304
+ Py_DECREF_IMMORTAL(result);
305
305
  }
306
306
 
307
307
  if (checked_reverse_op == false) {
@@ -316,7 +316,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_OBJECT(PyObject *operand1, PyObject *ope
316
316
  return result;
317
317
  }
318
318
 
319
- Py_DECREF(result);
319
+ Py_DECREF_IMMORTAL(result);
320
320
  }
321
321
  }
322
322
 
@@ -328,13 +328,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_OBJECT(PyObject *operand1, PyObject *ope
328
328
  case Py_EQ: {
329
329
  bool r = operand1 == operand2;
330
330
  PyObject *result = BOOL_FROM(r);
331
- Py_INCREF(result);
331
+ Py_INCREF_IMMORTAL(result);
332
332
  return result;
333
333
  }
334
334
  case Py_NE: {
335
335
  bool r = operand1 != operand2;
336
336
  PyObject *result = BOOL_FROM(r);
337
- Py_INCREF(result);
337
+ Py_INCREF_IMMORTAL(result);
338
338
  return result;
339
339
  }
340
340
  default:
@@ -402,7 +402,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_OBJECT(PyObject *operand1, PyObject *op
402
402
  }
403
403
  }
404
404
 
405
- Py_DECREF(result);
405
+ Py_DECREF_IMMORTAL(result);
406
406
  }
407
407
 
408
408
  // No rich comparison worked, but maybe compare works.
@@ -471,7 +471,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_OBJECT(PyObject *operand1, PyObject *op
471
471
  }
472
472
  }
473
473
 
474
- Py_DECREF(result);
474
+ Py_DECREF_IMMORTAL(result);
475
475
  }
476
476
  }
477
477
 
@@ -493,7 +493,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_OBJECT(PyObject *operand1, PyObject *op
493
493
  }
494
494
  }
495
495
 
496
- Py_DECREF(result);
496
+ Py_DECREF_IMMORTAL(result);
497
497
  }
498
498
 
499
499
  f = RICHCOMPARE(type2);
@@ -514,7 +514,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_OBJECT(PyObject *operand1, PyObject *op
514
514
  }
515
515
  }
516
516
 
517
- Py_DECREF(result);
517
+ Py_DECREF_IMMORTAL(result);
518
518
  }
519
519
 
520
520
  int c;
@@ -630,7 +630,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_OBJECT(PyObject *operand1, PyObject *op
630
630
  }
631
631
  }
632
632
 
633
- Py_DECREF(result);
633
+ Py_DECREF_IMMORTAL(result);
634
634
  }
635
635
  }
636
636
 
@@ -653,7 +653,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_OBJECT(PyObject *operand1, PyObject *op
653
653
  }
654
654
  }
655
655
 
656
- Py_DECREF(result);
656
+ Py_DECREF_IMMORTAL(result);
657
657
  }
658
658
 
659
659
  if (checked_reverse_op == false) {
@@ -676,7 +676,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_OBJECT(PyObject *operand1, PyObject *op
676
676
  }
677
677
  }
678
678
 
679
- Py_DECREF(result);
679
+ Py_DECREF_IMMORTAL(result);
680
680
  }
681
681
  }
682
682
 
@@ -725,7 +725,7 @@ static PyObject *COMPARE_GE_OBJECT_STR_STR(PyObject *operand1, PyObject *operand
725
725
 
726
726
  // Convert to target type.
727
727
  PyObject *result = BOOL_FROM(r);
728
- Py_INCREF(result);
728
+ Py_INCREF_IMMORTAL(result);
729
729
  return result;
730
730
  }
731
731
 
@@ -753,7 +753,7 @@ static PyObject *COMPARE_GE_OBJECT_STR_STR(PyObject *operand1, PyObject *operand
753
753
 
754
754
  // Convert to target type.
755
755
  PyObject *result = BOOL_FROM(c != 0);
756
- Py_INCREF(result);
756
+ Py_INCREF_IMMORTAL(result);
757
757
  return result;
758
758
  }
759
759
  /* Code referring to "OBJECT" corresponds to any Python object and "STR" to Python2 'str'. */
@@ -790,7 +790,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operan
790
790
  return result;
791
791
  }
792
792
 
793
- Py_DECREF(result);
793
+ Py_DECREF_IMMORTAL(result);
794
794
  }
795
795
 
796
796
  // No rich comparison worked, but maybe compare works.
@@ -831,7 +831,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operan
831
831
 
832
832
  bool r = c != 0;
833
833
  PyObject *result = BOOL_FROM(r);
834
- Py_INCREF(result);
834
+ Py_INCREF_IMMORTAL(result);
835
835
  return result;
836
836
  }
837
837
  }
@@ -851,7 +851,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operan
851
851
  return result;
852
852
  }
853
853
 
854
- Py_DECREF(result);
854
+ Py_DECREF_IMMORTAL(result);
855
855
  }
856
856
  }
857
857
 
@@ -865,7 +865,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operan
865
865
  return result;
866
866
  }
867
867
 
868
- Py_DECREF(result);
868
+ Py_DECREF_IMMORTAL(result);
869
869
  }
870
870
 
871
871
  f = PyString_Type.tp_richcompare;
@@ -878,7 +878,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operan
878
878
  return result;
879
879
  }
880
880
 
881
- Py_DECREF(result);
881
+ Py_DECREF_IMMORTAL(result);
882
882
  }
883
883
 
884
884
  int c;
@@ -966,7 +966,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operan
966
966
 
967
967
  bool r = c != 0;
968
968
  PyObject *result = BOOL_FROM(r);
969
- Py_INCREF(result);
969
+ Py_INCREF_IMMORTAL(result);
970
970
  return result;
971
971
  #else
972
972
  bool checked_reverse_op = false;
@@ -986,7 +986,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operan
986
986
  return result;
987
987
  }
988
988
 
989
- Py_DECREF(result);
989
+ Py_DECREF_IMMORTAL(result);
990
990
  }
991
991
  }
992
992
 
@@ -1001,7 +1001,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operan
1001
1001
  return result;
1002
1002
  }
1003
1003
 
1004
- Py_DECREF(result);
1004
+ Py_DECREF_IMMORTAL(result);
1005
1005
  }
1006
1006
 
1007
1007
  if (checked_reverse_op == false) {
@@ -1016,7 +1016,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operan
1016
1016
  return result;
1017
1017
  }
1018
1018
 
1019
- Py_DECREF(result);
1019
+ Py_DECREF_IMMORTAL(result);
1020
1020
  }
1021
1021
  }
1022
1022
 
@@ -1028,13 +1028,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operan
1028
1028
  case Py_EQ: {
1029
1029
  bool r = operand1 == operand2;
1030
1030
  PyObject *result = BOOL_FROM(r);
1031
- Py_INCREF(result);
1031
+ Py_INCREF_IMMORTAL(result);
1032
1032
  return result;
1033
1033
  }
1034
1034
  case Py_NE: {
1035
1035
  bool r = operand1 != operand2;
1036
1036
  PyObject *result = BOOL_FROM(r);
1037
- Py_INCREF(result);
1037
+ Py_INCREF_IMMORTAL(result);
1038
1038
  return result;
1039
1039
  }
1040
1040
  default:
@@ -1084,7 +1084,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_STR_OBJECT(PyObject *operand1, PyObject *operan
1084
1084
  return result;
1085
1085
  }
1086
1086
 
1087
- Py_DECREF(result);
1087
+ Py_DECREF_IMMORTAL(result);
1088
1088
  }
1089
1089
 
1090
1090
  // No rich comparison worked, but maybe compare works.
@@ -1125,7 +1125,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_STR_OBJECT(PyObject *operand1, PyObject *operan
1125
1125
 
1126
1126
  bool r = c != 0;
1127
1127
  PyObject *result = BOOL_FROM(r);
1128
- Py_INCREF(result);
1128
+ Py_INCREF_IMMORTAL(result);
1129
1129
  return result;
1130
1130
  }
1131
1131
  }
@@ -1145,7 +1145,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_STR_OBJECT(PyObject *operand1, PyObject *operan
1145
1145
  return result;
1146
1146
  }
1147
1147
 
1148
- Py_DECREF(result);
1148
+ Py_DECREF_IMMORTAL(result);
1149
1149
  }
1150
1150
  }
1151
1151
 
@@ -1159,7 +1159,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_STR_OBJECT(PyObject *operand1, PyObject *operan
1159
1159
  return result;
1160
1160
  }
1161
1161
 
1162
- Py_DECREF(result);
1162
+ Py_DECREF_IMMORTAL(result);
1163
1163
  }
1164
1164
 
1165
1165
  f = RICHCOMPARE(type2);
@@ -1172,7 +1172,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_STR_OBJECT(PyObject *operand1, PyObject *operan
1172
1172
  return result;
1173
1173
  }
1174
1174
 
1175
- Py_DECREF(result);
1175
+ Py_DECREF_IMMORTAL(result);
1176
1176
  }
1177
1177
 
1178
1178
  int c;
@@ -1260,7 +1260,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_STR_OBJECT(PyObject *operand1, PyObject *operan
1260
1260
 
1261
1261
  bool r = c != 0;
1262
1262
  PyObject *result = BOOL_FROM(r);
1263
- Py_INCREF(result);
1263
+ Py_INCREF_IMMORTAL(result);
1264
1264
  return result;
1265
1265
  #else
1266
1266
  bool checked_reverse_op = false;
@@ -1280,7 +1280,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_STR_OBJECT(PyObject *operand1, PyObject *operan
1280
1280
  return result;
1281
1281
  }
1282
1282
 
1283
- Py_DECREF(result);
1283
+ Py_DECREF_IMMORTAL(result);
1284
1284
  }
1285
1285
  }
1286
1286
 
@@ -1295,7 +1295,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_STR_OBJECT(PyObject *operand1, PyObject *operan
1295
1295
  return result;
1296
1296
  }
1297
1297
 
1298
- Py_DECREF(result);
1298
+ Py_DECREF_IMMORTAL(result);
1299
1299
  }
1300
1300
 
1301
1301
  if (checked_reverse_op == false) {
@@ -1310,7 +1310,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_STR_OBJECT(PyObject *operand1, PyObject *operan
1310
1310
  return result;
1311
1311
  }
1312
1312
 
1313
- Py_DECREF(result);
1313
+ Py_DECREF_IMMORTAL(result);
1314
1314
  }
1315
1315
  }
1316
1316
 
@@ -1322,13 +1322,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_STR_OBJECT(PyObject *operand1, PyObject *operan
1322
1322
  case Py_EQ: {
1323
1323
  bool r = operand1 == operand2;
1324
1324
  PyObject *result = BOOL_FROM(r);
1325
- Py_INCREF(result);
1325
+ Py_INCREF_IMMORTAL(result);
1326
1326
  return result;
1327
1327
  }
1328
1328
  case Py_NE: {
1329
1329
  bool r = operand1 != operand2;
1330
1330
  PyObject *result = BOOL_FROM(r);
1331
- Py_INCREF(result);
1331
+ Py_INCREF_IMMORTAL(result);
1332
1332
  return result;
1333
1333
  }
1334
1334
  default:
@@ -1432,7 +1432,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_STR(PyObject *operand1, PyObject *opera
1432
1432
  }
1433
1433
  }
1434
1434
 
1435
- Py_DECREF(result);
1435
+ Py_DECREF_IMMORTAL(result);
1436
1436
  }
1437
1437
 
1438
1438
  // No rich comparison worked, but maybe compare works.
@@ -1501,7 +1501,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_STR(PyObject *operand1, PyObject *opera
1501
1501
  }
1502
1502
  }
1503
1503
 
1504
- Py_DECREF(result);
1504
+ Py_DECREF_IMMORTAL(result);
1505
1505
  }
1506
1506
  }
1507
1507
 
@@ -1523,7 +1523,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_STR(PyObject *operand1, PyObject *opera
1523
1523
  }
1524
1524
  }
1525
1525
 
1526
- Py_DECREF(result);
1526
+ Py_DECREF_IMMORTAL(result);
1527
1527
  }
1528
1528
 
1529
1529
  f = PyString_Type.tp_richcompare;
@@ -1544,7 +1544,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_STR(PyObject *operand1, PyObject *opera
1544
1544
  }
1545
1545
  }
1546
1546
 
1547
- Py_DECREF(result);
1547
+ Py_DECREF_IMMORTAL(result);
1548
1548
  }
1549
1549
 
1550
1550
  int c;
@@ -1660,7 +1660,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_STR(PyObject *operand1, PyObject *opera
1660
1660
  }
1661
1661
  }
1662
1662
 
1663
- Py_DECREF(result);
1663
+ Py_DECREF_IMMORTAL(result);
1664
1664
  }
1665
1665
  }
1666
1666
 
@@ -1683,7 +1683,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_STR(PyObject *operand1, PyObject *opera
1683
1683
  }
1684
1684
  }
1685
1685
 
1686
- Py_DECREF(result);
1686
+ Py_DECREF_IMMORTAL(result);
1687
1687
  }
1688
1688
 
1689
1689
  if (checked_reverse_op == false) {
@@ -1706,7 +1706,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_STR(PyObject *operand1, PyObject *opera
1706
1706
  }
1707
1707
  }
1708
1708
 
1709
- Py_DECREF(result);
1709
+ Py_DECREF_IMMORTAL(result);
1710
1710
  }
1711
1711
  }
1712
1712
 
@@ -1782,7 +1782,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_STR_OBJECT(PyObject *operand1, PyObject *opera
1782
1782
  }
1783
1783
  }
1784
1784
 
1785
- Py_DECREF(result);
1785
+ Py_DECREF_IMMORTAL(result);
1786
1786
  }
1787
1787
 
1788
1788
  // No rich comparison worked, but maybe compare works.
@@ -1851,7 +1851,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_STR_OBJECT(PyObject *operand1, PyObject *opera
1851
1851
  }
1852
1852
  }
1853
1853
 
1854
- Py_DECREF(result);
1854
+ Py_DECREF_IMMORTAL(result);
1855
1855
  }
1856
1856
  }
1857
1857
 
@@ -1873,7 +1873,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_STR_OBJECT(PyObject *operand1, PyObject *opera
1873
1873
  }
1874
1874
  }
1875
1875
 
1876
- Py_DECREF(result);
1876
+ Py_DECREF_IMMORTAL(result);
1877
1877
  }
1878
1878
 
1879
1879
  f = RICHCOMPARE(type2);
@@ -1894,7 +1894,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_STR_OBJECT(PyObject *operand1, PyObject *opera
1894
1894
  }
1895
1895
  }
1896
1896
 
1897
- Py_DECREF(result);
1897
+ Py_DECREF_IMMORTAL(result);
1898
1898
  }
1899
1899
 
1900
1900
  int c;
@@ -2010,7 +2010,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_STR_OBJECT(PyObject *operand1, PyObject *opera
2010
2010
  }
2011
2011
  }
2012
2012
 
2013
- Py_DECREF(result);
2013
+ Py_DECREF_IMMORTAL(result);
2014
2014
  }
2015
2015
  }
2016
2016
 
@@ -2033,7 +2033,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_STR_OBJECT(PyObject *operand1, PyObject *opera
2033
2033
  }
2034
2034
  }
2035
2035
 
2036
- Py_DECREF(result);
2036
+ Py_DECREF_IMMORTAL(result);
2037
2037
  }
2038
2038
 
2039
2039
  if (checked_reverse_op == false) {
@@ -2056,7 +2056,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_STR_OBJECT(PyObject *operand1, PyObject *opera
2056
2056
  }
2057
2057
  }
2058
2058
 
2059
- Py_DECREF(result);
2059
+ Py_DECREF_IMMORTAL(result);
2060
2060
  }
2061
2061
  }
2062
2062
 
@@ -2104,7 +2104,7 @@ static PyObject *COMPARE_GE_OBJECT_UNICODE_UNICODE(PyObject *operand1, PyObject
2104
2104
 
2105
2105
  // Convert to target type.
2106
2106
  PyObject *result = BOOL_FROM(r);
2107
- Py_INCREF(result);
2107
+ Py_INCREF_IMMORTAL(result);
2108
2108
  return result;
2109
2109
  }
2110
2110
 
@@ -2147,7 +2147,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_UNICODE(PyObject *operand1, PyObject *op
2147
2147
  return result;
2148
2148
  }
2149
2149
 
2150
- Py_DECREF(result);
2150
+ Py_DECREF_IMMORTAL(result);
2151
2151
  }
2152
2152
 
2153
2153
  // No rich comparison worked, but maybe compare works.
@@ -2188,7 +2188,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_UNICODE(PyObject *operand1, PyObject *op
2188
2188
 
2189
2189
  bool r = c != 0;
2190
2190
  PyObject *result = BOOL_FROM(r);
2191
- Py_INCREF(result);
2191
+ Py_INCREF_IMMORTAL(result);
2192
2192
  return result;
2193
2193
  }
2194
2194
  }
@@ -2208,7 +2208,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_UNICODE(PyObject *operand1, PyObject *op
2208
2208
  return result;
2209
2209
  }
2210
2210
 
2211
- Py_DECREF(result);
2211
+ Py_DECREF_IMMORTAL(result);
2212
2212
  }
2213
2213
  }
2214
2214
 
@@ -2222,7 +2222,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_UNICODE(PyObject *operand1, PyObject *op
2222
2222
  return result;
2223
2223
  }
2224
2224
 
2225
- Py_DECREF(result);
2225
+ Py_DECREF_IMMORTAL(result);
2226
2226
  }
2227
2227
 
2228
2228
  f = PyUnicode_Type.tp_richcompare;
@@ -2235,7 +2235,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_UNICODE(PyObject *operand1, PyObject *op
2235
2235
  return result;
2236
2236
  }
2237
2237
 
2238
- Py_DECREF(result);
2238
+ Py_DECREF_IMMORTAL(result);
2239
2239
  }
2240
2240
 
2241
2241
  int c;
@@ -2323,7 +2323,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_UNICODE(PyObject *operand1, PyObject *op
2323
2323
 
2324
2324
  bool r = c != 0;
2325
2325
  PyObject *result = BOOL_FROM(r);
2326
- Py_INCREF(result);
2326
+ Py_INCREF_IMMORTAL(result);
2327
2327
  return result;
2328
2328
  #else
2329
2329
  bool checked_reverse_op = false;
@@ -2343,7 +2343,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_UNICODE(PyObject *operand1, PyObject *op
2343
2343
  return result;
2344
2344
  }
2345
2345
 
2346
- Py_DECREF(result);
2346
+ Py_DECREF_IMMORTAL(result);
2347
2347
  }
2348
2348
  }
2349
2349
 
@@ -2358,7 +2358,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_UNICODE(PyObject *operand1, PyObject *op
2358
2358
  return result;
2359
2359
  }
2360
2360
 
2361
- Py_DECREF(result);
2361
+ Py_DECREF_IMMORTAL(result);
2362
2362
  }
2363
2363
 
2364
2364
  if (checked_reverse_op == false) {
@@ -2373,7 +2373,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_UNICODE(PyObject *operand1, PyObject *op
2373
2373
  return result;
2374
2374
  }
2375
2375
 
2376
- Py_DECREF(result);
2376
+ Py_DECREF_IMMORTAL(result);
2377
2377
  }
2378
2378
  }
2379
2379
 
@@ -2385,13 +2385,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_UNICODE(PyObject *operand1, PyObject *op
2385
2385
  case Py_EQ: {
2386
2386
  bool r = operand1 == operand2;
2387
2387
  PyObject *result = BOOL_FROM(r);
2388
- Py_INCREF(result);
2388
+ Py_INCREF_IMMORTAL(result);
2389
2389
  return result;
2390
2390
  }
2391
2391
  case Py_NE: {
2392
2392
  bool r = operand1 != operand2;
2393
2393
  PyObject *result = BOOL_FROM(r);
2394
- Py_INCREF(result);
2394
+ Py_INCREF_IMMORTAL(result);
2395
2395
  return result;
2396
2396
  }
2397
2397
  default:
@@ -2441,7 +2441,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_UNICODE_OBJECT(PyObject *operand1, PyObject *op
2441
2441
  return result;
2442
2442
  }
2443
2443
 
2444
- Py_DECREF(result);
2444
+ Py_DECREF_IMMORTAL(result);
2445
2445
  }
2446
2446
 
2447
2447
  // No rich comparison worked, but maybe compare works.
@@ -2482,7 +2482,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_UNICODE_OBJECT(PyObject *operand1, PyObject *op
2482
2482
 
2483
2483
  bool r = c != 0;
2484
2484
  PyObject *result = BOOL_FROM(r);
2485
- Py_INCREF(result);
2485
+ Py_INCREF_IMMORTAL(result);
2486
2486
  return result;
2487
2487
  }
2488
2488
  }
@@ -2502,7 +2502,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_UNICODE_OBJECT(PyObject *operand1, PyObject *op
2502
2502
  return result;
2503
2503
  }
2504
2504
 
2505
- Py_DECREF(result);
2505
+ Py_DECREF_IMMORTAL(result);
2506
2506
  }
2507
2507
  }
2508
2508
 
@@ -2516,7 +2516,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_UNICODE_OBJECT(PyObject *operand1, PyObject *op
2516
2516
  return result;
2517
2517
  }
2518
2518
 
2519
- Py_DECREF(result);
2519
+ Py_DECREF_IMMORTAL(result);
2520
2520
  }
2521
2521
 
2522
2522
  f = RICHCOMPARE(type2);
@@ -2529,7 +2529,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_UNICODE_OBJECT(PyObject *operand1, PyObject *op
2529
2529
  return result;
2530
2530
  }
2531
2531
 
2532
- Py_DECREF(result);
2532
+ Py_DECREF_IMMORTAL(result);
2533
2533
  }
2534
2534
 
2535
2535
  int c;
@@ -2617,7 +2617,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_UNICODE_OBJECT(PyObject *operand1, PyObject *op
2617
2617
 
2618
2618
  bool r = c != 0;
2619
2619
  PyObject *result = BOOL_FROM(r);
2620
- Py_INCREF(result);
2620
+ Py_INCREF_IMMORTAL(result);
2621
2621
  return result;
2622
2622
  #else
2623
2623
  bool checked_reverse_op = false;
@@ -2637,7 +2637,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_UNICODE_OBJECT(PyObject *operand1, PyObject *op
2637
2637
  return result;
2638
2638
  }
2639
2639
 
2640
- Py_DECREF(result);
2640
+ Py_DECREF_IMMORTAL(result);
2641
2641
  }
2642
2642
  }
2643
2643
 
@@ -2652,7 +2652,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_UNICODE_OBJECT(PyObject *operand1, PyObject *op
2652
2652
  return result;
2653
2653
  }
2654
2654
 
2655
- Py_DECREF(result);
2655
+ Py_DECREF_IMMORTAL(result);
2656
2656
  }
2657
2657
 
2658
2658
  if (checked_reverse_op == false) {
@@ -2667,7 +2667,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_UNICODE_OBJECT(PyObject *operand1, PyObject *op
2667
2667
  return result;
2668
2668
  }
2669
2669
 
2670
- Py_DECREF(result);
2670
+ Py_DECREF_IMMORTAL(result);
2671
2671
  }
2672
2672
  }
2673
2673
 
@@ -2679,13 +2679,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_UNICODE_OBJECT(PyObject *operand1, PyObject *op
2679
2679
  case Py_EQ: {
2680
2680
  bool r = operand1 == operand2;
2681
2681
  PyObject *result = BOOL_FROM(r);
2682
- Py_INCREF(result);
2682
+ Py_INCREF_IMMORTAL(result);
2683
2683
  return result;
2684
2684
  }
2685
2685
  case Py_NE: {
2686
2686
  bool r = operand1 != operand2;
2687
2687
  PyObject *result = BOOL_FROM(r);
2688
- Py_INCREF(result);
2688
+ Py_INCREF_IMMORTAL(result);
2689
2689
  return result;
2690
2690
  }
2691
2691
  default:
@@ -2725,7 +2725,7 @@ static bool COMPARE_GE_CBOOL_UNICODE_UNICODE(PyObject *operand1, PyObject *opera
2725
2725
 
2726
2726
  // Convert to target type if necessary
2727
2727
  bool result = r == Py_True;
2728
- Py_DECREF(r);
2728
+ Py_DECREF_IMMORTAL(r);
2729
2729
 
2730
2730
  return result;
2731
2731
  }
@@ -2771,7 +2771,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_UNICODE(PyObject *operand1, PyObject *o
2771
2771
  }
2772
2772
  }
2773
2773
 
2774
- Py_DECREF(result);
2774
+ Py_DECREF_IMMORTAL(result);
2775
2775
  }
2776
2776
 
2777
2777
  // No rich comparison worked, but maybe compare works.
@@ -2840,7 +2840,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_UNICODE(PyObject *operand1, PyObject *o
2840
2840
  }
2841
2841
  }
2842
2842
 
2843
- Py_DECREF(result);
2843
+ Py_DECREF_IMMORTAL(result);
2844
2844
  }
2845
2845
  }
2846
2846
 
@@ -2862,7 +2862,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_UNICODE(PyObject *operand1, PyObject *o
2862
2862
  }
2863
2863
  }
2864
2864
 
2865
- Py_DECREF(result);
2865
+ Py_DECREF_IMMORTAL(result);
2866
2866
  }
2867
2867
 
2868
2868
  f = PyUnicode_Type.tp_richcompare;
@@ -2883,7 +2883,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_UNICODE(PyObject *operand1, PyObject *o
2883
2883
  }
2884
2884
  }
2885
2885
 
2886
- Py_DECREF(result);
2886
+ Py_DECREF_IMMORTAL(result);
2887
2887
  }
2888
2888
 
2889
2889
  int c;
@@ -2999,7 +2999,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_UNICODE(PyObject *operand1, PyObject *o
2999
2999
  }
3000
3000
  }
3001
3001
 
3002
- Py_DECREF(result);
3002
+ Py_DECREF_IMMORTAL(result);
3003
3003
  }
3004
3004
  }
3005
3005
 
@@ -3022,7 +3022,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_UNICODE(PyObject *operand1, PyObject *o
3022
3022
  }
3023
3023
  }
3024
3024
 
3025
- Py_DECREF(result);
3025
+ Py_DECREF_IMMORTAL(result);
3026
3026
  }
3027
3027
 
3028
3028
  if (checked_reverse_op == false) {
@@ -3045,7 +3045,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_UNICODE(PyObject *operand1, PyObject *o
3045
3045
  }
3046
3046
  }
3047
3047
 
3048
- Py_DECREF(result);
3048
+ Py_DECREF_IMMORTAL(result);
3049
3049
  }
3050
3050
  }
3051
3051
 
@@ -3121,7 +3121,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_UNICODE_OBJECT(PyObject *operand1, PyObject *o
3121
3121
  }
3122
3122
  }
3123
3123
 
3124
- Py_DECREF(result);
3124
+ Py_DECREF_IMMORTAL(result);
3125
3125
  }
3126
3126
 
3127
3127
  // No rich comparison worked, but maybe compare works.
@@ -3190,7 +3190,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_UNICODE_OBJECT(PyObject *operand1, PyObject *o
3190
3190
  }
3191
3191
  }
3192
3192
 
3193
- Py_DECREF(result);
3193
+ Py_DECREF_IMMORTAL(result);
3194
3194
  }
3195
3195
  }
3196
3196
 
@@ -3212,7 +3212,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_UNICODE_OBJECT(PyObject *operand1, PyObject *o
3212
3212
  }
3213
3213
  }
3214
3214
 
3215
- Py_DECREF(result);
3215
+ Py_DECREF_IMMORTAL(result);
3216
3216
  }
3217
3217
 
3218
3218
  f = RICHCOMPARE(type2);
@@ -3233,7 +3233,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_UNICODE_OBJECT(PyObject *operand1, PyObject *o
3233
3233
  }
3234
3234
  }
3235
3235
 
3236
- Py_DECREF(result);
3236
+ Py_DECREF_IMMORTAL(result);
3237
3237
  }
3238
3238
 
3239
3239
  int c;
@@ -3349,7 +3349,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_UNICODE_OBJECT(PyObject *operand1, PyObject *o
3349
3349
  }
3350
3350
  }
3351
3351
 
3352
- Py_DECREF(result);
3352
+ Py_DECREF_IMMORTAL(result);
3353
3353
  }
3354
3354
  }
3355
3355
 
@@ -3372,7 +3372,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_UNICODE_OBJECT(PyObject *operand1, PyObject *o
3372
3372
  }
3373
3373
  }
3374
3374
 
3375
- Py_DECREF(result);
3375
+ Py_DECREF_IMMORTAL(result);
3376
3376
  }
3377
3377
 
3378
3378
  if (checked_reverse_op == false) {
@@ -3395,7 +3395,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_UNICODE_OBJECT(PyObject *operand1, PyObject *o
3395
3395
  }
3396
3396
  }
3397
3397
 
3398
- Py_DECREF(result);
3398
+ Py_DECREF_IMMORTAL(result);
3399
3399
  }
3400
3400
  }
3401
3401
 
@@ -3445,7 +3445,7 @@ static PyObject *COMPARE_GE_OBJECT_BYTES_BYTES(PyObject *operand1, PyObject *ope
3445
3445
 
3446
3446
  // Convert to target type.
3447
3447
  PyObject *result = BOOL_FROM(r);
3448
- Py_INCREF(result);
3448
+ Py_INCREF_IMMORTAL(result);
3449
3449
  return result;
3450
3450
  }
3451
3451
 
@@ -3473,7 +3473,7 @@ static PyObject *COMPARE_GE_OBJECT_BYTES_BYTES(PyObject *operand1, PyObject *ope
3473
3473
 
3474
3474
  // Convert to target type.
3475
3475
  PyObject *result = BOOL_FROM(c != 0);
3476
- Py_INCREF(result);
3476
+ Py_INCREF_IMMORTAL(result);
3477
3477
  return result;
3478
3478
  }
3479
3479
  /* Code referring to "OBJECT" corresponds to any Python object and "BYTES" to Python3 'bytes'. */
@@ -3510,7 +3510,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *oper
3510
3510
  return result;
3511
3511
  }
3512
3512
 
3513
- Py_DECREF(result);
3513
+ Py_DECREF_IMMORTAL(result);
3514
3514
  }
3515
3515
 
3516
3516
  // No rich comparison worked, but maybe compare works.
@@ -3551,7 +3551,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *oper
3551
3551
 
3552
3552
  bool r = c != 0;
3553
3553
  PyObject *result = BOOL_FROM(r);
3554
- Py_INCREF(result);
3554
+ Py_INCREF_IMMORTAL(result);
3555
3555
  return result;
3556
3556
  }
3557
3557
  }
@@ -3571,7 +3571,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *oper
3571
3571
  return result;
3572
3572
  }
3573
3573
 
3574
- Py_DECREF(result);
3574
+ Py_DECREF_IMMORTAL(result);
3575
3575
  }
3576
3576
  }
3577
3577
 
@@ -3585,7 +3585,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *oper
3585
3585
  return result;
3586
3586
  }
3587
3587
 
3588
- Py_DECREF(result);
3588
+ Py_DECREF_IMMORTAL(result);
3589
3589
  }
3590
3590
 
3591
3591
  f = PyBytes_Type.tp_richcompare;
@@ -3598,7 +3598,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *oper
3598
3598
  return result;
3599
3599
  }
3600
3600
 
3601
- Py_DECREF(result);
3601
+ Py_DECREF_IMMORTAL(result);
3602
3602
  }
3603
3603
 
3604
3604
  int c;
@@ -3686,7 +3686,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *oper
3686
3686
 
3687
3687
  bool r = c != 0;
3688
3688
  PyObject *result = BOOL_FROM(r);
3689
- Py_INCREF(result);
3689
+ Py_INCREF_IMMORTAL(result);
3690
3690
  return result;
3691
3691
  #else
3692
3692
  bool checked_reverse_op = false;
@@ -3706,7 +3706,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *oper
3706
3706
  return result;
3707
3707
  }
3708
3708
 
3709
- Py_DECREF(result);
3709
+ Py_DECREF_IMMORTAL(result);
3710
3710
  }
3711
3711
  }
3712
3712
 
@@ -3721,7 +3721,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *oper
3721
3721
  return result;
3722
3722
  }
3723
3723
 
3724
- Py_DECREF(result);
3724
+ Py_DECREF_IMMORTAL(result);
3725
3725
  }
3726
3726
 
3727
3727
  if (checked_reverse_op == false) {
@@ -3736,7 +3736,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *oper
3736
3736
  return result;
3737
3737
  }
3738
3738
 
3739
- Py_DECREF(result);
3739
+ Py_DECREF_IMMORTAL(result);
3740
3740
  }
3741
3741
  }
3742
3742
 
@@ -3748,13 +3748,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *oper
3748
3748
  case Py_EQ: {
3749
3749
  bool r = operand1 == operand2;
3750
3750
  PyObject *result = BOOL_FROM(r);
3751
- Py_INCREF(result);
3751
+ Py_INCREF_IMMORTAL(result);
3752
3752
  return result;
3753
3753
  }
3754
3754
  case Py_NE: {
3755
3755
  bool r = operand1 != operand2;
3756
3756
  PyObject *result = BOOL_FROM(r);
3757
- Py_INCREF(result);
3757
+ Py_INCREF_IMMORTAL(result);
3758
3758
  return result;
3759
3759
  }
3760
3760
  default:
@@ -3804,7 +3804,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_BYTES_OBJECT(PyObject *operand1, PyObject *oper
3804
3804
  return result;
3805
3805
  }
3806
3806
 
3807
- Py_DECREF(result);
3807
+ Py_DECREF_IMMORTAL(result);
3808
3808
  }
3809
3809
 
3810
3810
  // No rich comparison worked, but maybe compare works.
@@ -3845,7 +3845,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_BYTES_OBJECT(PyObject *operand1, PyObject *oper
3845
3845
 
3846
3846
  bool r = c != 0;
3847
3847
  PyObject *result = BOOL_FROM(r);
3848
- Py_INCREF(result);
3848
+ Py_INCREF_IMMORTAL(result);
3849
3849
  return result;
3850
3850
  }
3851
3851
  }
@@ -3865,7 +3865,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_BYTES_OBJECT(PyObject *operand1, PyObject *oper
3865
3865
  return result;
3866
3866
  }
3867
3867
 
3868
- Py_DECREF(result);
3868
+ Py_DECREF_IMMORTAL(result);
3869
3869
  }
3870
3870
  }
3871
3871
 
@@ -3879,7 +3879,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_BYTES_OBJECT(PyObject *operand1, PyObject *oper
3879
3879
  return result;
3880
3880
  }
3881
3881
 
3882
- Py_DECREF(result);
3882
+ Py_DECREF_IMMORTAL(result);
3883
3883
  }
3884
3884
 
3885
3885
  f = RICHCOMPARE(type2);
@@ -3892,7 +3892,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_BYTES_OBJECT(PyObject *operand1, PyObject *oper
3892
3892
  return result;
3893
3893
  }
3894
3894
 
3895
- Py_DECREF(result);
3895
+ Py_DECREF_IMMORTAL(result);
3896
3896
  }
3897
3897
 
3898
3898
  int c;
@@ -3980,7 +3980,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_BYTES_OBJECT(PyObject *operand1, PyObject *oper
3980
3980
 
3981
3981
  bool r = c != 0;
3982
3982
  PyObject *result = BOOL_FROM(r);
3983
- Py_INCREF(result);
3983
+ Py_INCREF_IMMORTAL(result);
3984
3984
  return result;
3985
3985
  #else
3986
3986
  bool checked_reverse_op = false;
@@ -4000,7 +4000,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_BYTES_OBJECT(PyObject *operand1, PyObject *oper
4000
4000
  return result;
4001
4001
  }
4002
4002
 
4003
- Py_DECREF(result);
4003
+ Py_DECREF_IMMORTAL(result);
4004
4004
  }
4005
4005
  }
4006
4006
 
@@ -4015,7 +4015,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_BYTES_OBJECT(PyObject *operand1, PyObject *oper
4015
4015
  return result;
4016
4016
  }
4017
4017
 
4018
- Py_DECREF(result);
4018
+ Py_DECREF_IMMORTAL(result);
4019
4019
  }
4020
4020
 
4021
4021
  if (checked_reverse_op == false) {
@@ -4030,7 +4030,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_BYTES_OBJECT(PyObject *operand1, PyObject *oper
4030
4030
  return result;
4031
4031
  }
4032
4032
 
4033
- Py_DECREF(result);
4033
+ Py_DECREF_IMMORTAL(result);
4034
4034
  }
4035
4035
  }
4036
4036
 
@@ -4042,13 +4042,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_BYTES_OBJECT(PyObject *operand1, PyObject *oper
4042
4042
  case Py_EQ: {
4043
4043
  bool r = operand1 == operand2;
4044
4044
  PyObject *result = BOOL_FROM(r);
4045
- Py_INCREF(result);
4045
+ Py_INCREF_IMMORTAL(result);
4046
4046
  return result;
4047
4047
  }
4048
4048
  case Py_NE: {
4049
4049
  bool r = operand1 != operand2;
4050
4050
  PyObject *result = BOOL_FROM(r);
4051
- Py_INCREF(result);
4051
+ Py_INCREF_IMMORTAL(result);
4052
4052
  return result;
4053
4053
  }
4054
4054
  default:
@@ -4152,7 +4152,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_BYTES(PyObject *operand1, PyObject *ope
4152
4152
  }
4153
4153
  }
4154
4154
 
4155
- Py_DECREF(result);
4155
+ Py_DECREF_IMMORTAL(result);
4156
4156
  }
4157
4157
 
4158
4158
  // No rich comparison worked, but maybe compare works.
@@ -4221,7 +4221,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_BYTES(PyObject *operand1, PyObject *ope
4221
4221
  }
4222
4222
  }
4223
4223
 
4224
- Py_DECREF(result);
4224
+ Py_DECREF_IMMORTAL(result);
4225
4225
  }
4226
4226
  }
4227
4227
 
@@ -4243,7 +4243,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_BYTES(PyObject *operand1, PyObject *ope
4243
4243
  }
4244
4244
  }
4245
4245
 
4246
- Py_DECREF(result);
4246
+ Py_DECREF_IMMORTAL(result);
4247
4247
  }
4248
4248
 
4249
4249
  f = PyBytes_Type.tp_richcompare;
@@ -4264,7 +4264,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_BYTES(PyObject *operand1, PyObject *ope
4264
4264
  }
4265
4265
  }
4266
4266
 
4267
- Py_DECREF(result);
4267
+ Py_DECREF_IMMORTAL(result);
4268
4268
  }
4269
4269
 
4270
4270
  int c;
@@ -4380,7 +4380,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_BYTES(PyObject *operand1, PyObject *ope
4380
4380
  }
4381
4381
  }
4382
4382
 
4383
- Py_DECREF(result);
4383
+ Py_DECREF_IMMORTAL(result);
4384
4384
  }
4385
4385
  }
4386
4386
 
@@ -4403,7 +4403,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_BYTES(PyObject *operand1, PyObject *ope
4403
4403
  }
4404
4404
  }
4405
4405
 
4406
- Py_DECREF(result);
4406
+ Py_DECREF_IMMORTAL(result);
4407
4407
  }
4408
4408
 
4409
4409
  if (checked_reverse_op == false) {
@@ -4426,7 +4426,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_BYTES(PyObject *operand1, PyObject *ope
4426
4426
  }
4427
4427
  }
4428
4428
 
4429
- Py_DECREF(result);
4429
+ Py_DECREF_IMMORTAL(result);
4430
4430
  }
4431
4431
  }
4432
4432
 
@@ -4502,7 +4502,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_BYTES_OBJECT(PyObject *operand1, PyObject *ope
4502
4502
  }
4503
4503
  }
4504
4504
 
4505
- Py_DECREF(result);
4505
+ Py_DECREF_IMMORTAL(result);
4506
4506
  }
4507
4507
 
4508
4508
  // No rich comparison worked, but maybe compare works.
@@ -4571,7 +4571,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_BYTES_OBJECT(PyObject *operand1, PyObject *ope
4571
4571
  }
4572
4572
  }
4573
4573
 
4574
- Py_DECREF(result);
4574
+ Py_DECREF_IMMORTAL(result);
4575
4575
  }
4576
4576
  }
4577
4577
 
@@ -4593,7 +4593,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_BYTES_OBJECT(PyObject *operand1, PyObject *ope
4593
4593
  }
4594
4594
  }
4595
4595
 
4596
- Py_DECREF(result);
4596
+ Py_DECREF_IMMORTAL(result);
4597
4597
  }
4598
4598
 
4599
4599
  f = RICHCOMPARE(type2);
@@ -4614,7 +4614,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_BYTES_OBJECT(PyObject *operand1, PyObject *ope
4614
4614
  }
4615
4615
  }
4616
4616
 
4617
- Py_DECREF(result);
4617
+ Py_DECREF_IMMORTAL(result);
4618
4618
  }
4619
4619
 
4620
4620
  int c;
@@ -4730,7 +4730,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_BYTES_OBJECT(PyObject *operand1, PyObject *ope
4730
4730
  }
4731
4731
  }
4732
4732
 
4733
- Py_DECREF(result);
4733
+ Py_DECREF_IMMORTAL(result);
4734
4734
  }
4735
4735
  }
4736
4736
 
@@ -4753,7 +4753,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_BYTES_OBJECT(PyObject *operand1, PyObject *ope
4753
4753
  }
4754
4754
  }
4755
4755
 
4756
- Py_DECREF(result);
4756
+ Py_DECREF_IMMORTAL(result);
4757
4757
  }
4758
4758
 
4759
4759
  if (checked_reverse_op == false) {
@@ -4776,7 +4776,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_BYTES_OBJECT(PyObject *operand1, PyObject *ope
4776
4776
  }
4777
4777
  }
4778
4778
 
4779
- Py_DECREF(result);
4779
+ Py_DECREF_IMMORTAL(result);
4780
4780
  }
4781
4781
  }
4782
4782
 
@@ -4844,7 +4844,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_INT(PyObject *operand1, PyObject *operan
4844
4844
  return result;
4845
4845
  }
4846
4846
 
4847
- Py_DECREF(result);
4847
+ Py_DECREF_IMMORTAL(result);
4848
4848
  }
4849
4849
 
4850
4850
  // No rich comparison worked, but maybe compare works.
@@ -4885,7 +4885,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_INT(PyObject *operand1, PyObject *operan
4885
4885
 
4886
4886
  bool r = c != 0;
4887
4887
  PyObject *result = BOOL_FROM(r);
4888
- Py_INCREF(result);
4888
+ Py_INCREF_IMMORTAL(result);
4889
4889
  return result;
4890
4890
  }
4891
4891
  }
@@ -4905,7 +4905,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_INT(PyObject *operand1, PyObject *operan
4905
4905
  return result;
4906
4906
  }
4907
4907
 
4908
- Py_DECREF(result);
4908
+ Py_DECREF_IMMORTAL(result);
4909
4909
  }
4910
4910
  }
4911
4911
 
@@ -4919,7 +4919,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_INT(PyObject *operand1, PyObject *operan
4919
4919
  return result;
4920
4920
  }
4921
4921
 
4922
- Py_DECREF(result);
4922
+ Py_DECREF_IMMORTAL(result);
4923
4923
  }
4924
4924
 
4925
4925
  f = NULL;
@@ -4932,7 +4932,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_INT(PyObject *operand1, PyObject *operan
4932
4932
  return result;
4933
4933
  }
4934
4934
 
4935
- Py_DECREF(result);
4935
+ Py_DECREF_IMMORTAL(result);
4936
4936
  }
4937
4937
 
4938
4938
  int c;
@@ -5020,7 +5020,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_INT(PyObject *operand1, PyObject *operan
5020
5020
 
5021
5021
  bool r = c != 0;
5022
5022
  PyObject *result = BOOL_FROM(r);
5023
- Py_INCREF(result);
5023
+ Py_INCREF_IMMORTAL(result);
5024
5024
  return result;
5025
5025
  #else
5026
5026
  bool checked_reverse_op = false;
@@ -5040,7 +5040,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_INT(PyObject *operand1, PyObject *operan
5040
5040
  return result;
5041
5041
  }
5042
5042
 
5043
- Py_DECREF(result);
5043
+ Py_DECREF_IMMORTAL(result);
5044
5044
  }
5045
5045
  }
5046
5046
 
@@ -5055,7 +5055,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_INT(PyObject *operand1, PyObject *operan
5055
5055
  return result;
5056
5056
  }
5057
5057
 
5058
- Py_DECREF(result);
5058
+ Py_DECREF_IMMORTAL(result);
5059
5059
  }
5060
5060
 
5061
5061
  if (checked_reverse_op == false) {
@@ -5070,7 +5070,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_INT(PyObject *operand1, PyObject *operan
5070
5070
  return result;
5071
5071
  }
5072
5072
 
5073
- Py_DECREF(result);
5073
+ Py_DECREF_IMMORTAL(result);
5074
5074
  }
5075
5075
  }
5076
5076
 
@@ -5082,13 +5082,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_INT(PyObject *operand1, PyObject *operan
5082
5082
  case Py_EQ: {
5083
5083
  bool r = operand1 == operand2;
5084
5084
  PyObject *result = BOOL_FROM(r);
5085
- Py_INCREF(result);
5085
+ Py_INCREF_IMMORTAL(result);
5086
5086
  return result;
5087
5087
  }
5088
5088
  case Py_NE: {
5089
5089
  bool r = operand1 != operand2;
5090
5090
  PyObject *result = BOOL_FROM(r);
5091
- Py_INCREF(result);
5091
+ Py_INCREF_IMMORTAL(result);
5092
5092
  return result;
5093
5093
  }
5094
5094
  default:
@@ -5138,7 +5138,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_INT_OBJECT(PyObject *operand1, PyObject *operan
5138
5138
  return result;
5139
5139
  }
5140
5140
 
5141
- Py_DECREF(result);
5141
+ Py_DECREF_IMMORTAL(result);
5142
5142
  }
5143
5143
 
5144
5144
  // No rich comparison worked, but maybe compare works.
@@ -5179,7 +5179,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_INT_OBJECT(PyObject *operand1, PyObject *operan
5179
5179
 
5180
5180
  bool r = c != 0;
5181
5181
  PyObject *result = BOOL_FROM(r);
5182
- Py_INCREF(result);
5182
+ Py_INCREF_IMMORTAL(result);
5183
5183
  return result;
5184
5184
  }
5185
5185
  }
@@ -5199,7 +5199,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_INT_OBJECT(PyObject *operand1, PyObject *operan
5199
5199
  return result;
5200
5200
  }
5201
5201
 
5202
- Py_DECREF(result);
5202
+ Py_DECREF_IMMORTAL(result);
5203
5203
  }
5204
5204
  }
5205
5205
 
@@ -5213,7 +5213,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_INT_OBJECT(PyObject *operand1, PyObject *operan
5213
5213
  return result;
5214
5214
  }
5215
5215
 
5216
- Py_DECREF(result);
5216
+ Py_DECREF_IMMORTAL(result);
5217
5217
  }
5218
5218
 
5219
5219
  f = RICHCOMPARE(type2);
@@ -5226,7 +5226,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_INT_OBJECT(PyObject *operand1, PyObject *operan
5226
5226
  return result;
5227
5227
  }
5228
5228
 
5229
- Py_DECREF(result);
5229
+ Py_DECREF_IMMORTAL(result);
5230
5230
  }
5231
5231
 
5232
5232
  int c;
@@ -5314,7 +5314,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_INT_OBJECT(PyObject *operand1, PyObject *operan
5314
5314
 
5315
5315
  bool r = c != 0;
5316
5316
  PyObject *result = BOOL_FROM(r);
5317
- Py_INCREF(result);
5317
+ Py_INCREF_IMMORTAL(result);
5318
5318
  return result;
5319
5319
  #else
5320
5320
  bool checked_reverse_op = false;
@@ -5334,7 +5334,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_INT_OBJECT(PyObject *operand1, PyObject *operan
5334
5334
  return result;
5335
5335
  }
5336
5336
 
5337
- Py_DECREF(result);
5337
+ Py_DECREF_IMMORTAL(result);
5338
5338
  }
5339
5339
  }
5340
5340
 
@@ -5349,7 +5349,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_INT_OBJECT(PyObject *operand1, PyObject *operan
5349
5349
  return result;
5350
5350
  }
5351
5351
 
5352
- Py_DECREF(result);
5352
+ Py_DECREF_IMMORTAL(result);
5353
5353
  }
5354
5354
 
5355
5355
  if (checked_reverse_op == false) {
@@ -5364,7 +5364,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_INT_OBJECT(PyObject *operand1, PyObject *operan
5364
5364
  return result;
5365
5365
  }
5366
5366
 
5367
- Py_DECREF(result);
5367
+ Py_DECREF_IMMORTAL(result);
5368
5368
  }
5369
5369
  }
5370
5370
 
@@ -5376,13 +5376,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_INT_OBJECT(PyObject *operand1, PyObject *operan
5376
5376
  case Py_EQ: {
5377
5377
  bool r = operand1 == operand2;
5378
5378
  PyObject *result = BOOL_FROM(r);
5379
- Py_INCREF(result);
5379
+ Py_INCREF_IMMORTAL(result);
5380
5380
  return result;
5381
5381
  }
5382
5382
  case Py_NE: {
5383
5383
  bool r = operand1 != operand2;
5384
5384
  PyObject *result = BOOL_FROM(r);
5385
- Py_INCREF(result);
5385
+ Py_INCREF_IMMORTAL(result);
5386
5386
  return result;
5387
5387
  }
5388
5388
  default:
@@ -5440,7 +5440,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_INT(PyObject *operand1, PyObject *opera
5440
5440
  }
5441
5441
  }
5442
5442
 
5443
- Py_DECREF(result);
5443
+ Py_DECREF_IMMORTAL(result);
5444
5444
  }
5445
5445
 
5446
5446
  // No rich comparison worked, but maybe compare works.
@@ -5509,7 +5509,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_INT(PyObject *operand1, PyObject *opera
5509
5509
  }
5510
5510
  }
5511
5511
 
5512
- Py_DECREF(result);
5512
+ Py_DECREF_IMMORTAL(result);
5513
5513
  }
5514
5514
  }
5515
5515
 
@@ -5531,7 +5531,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_INT(PyObject *operand1, PyObject *opera
5531
5531
  }
5532
5532
  }
5533
5533
 
5534
- Py_DECREF(result);
5534
+ Py_DECREF_IMMORTAL(result);
5535
5535
  }
5536
5536
 
5537
5537
  f = NULL;
@@ -5552,7 +5552,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_INT(PyObject *operand1, PyObject *opera
5552
5552
  }
5553
5553
  }
5554
5554
 
5555
- Py_DECREF(result);
5555
+ Py_DECREF_IMMORTAL(result);
5556
5556
  }
5557
5557
 
5558
5558
  int c;
@@ -5668,7 +5668,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_INT(PyObject *operand1, PyObject *opera
5668
5668
  }
5669
5669
  }
5670
5670
 
5671
- Py_DECREF(result);
5671
+ Py_DECREF_IMMORTAL(result);
5672
5672
  }
5673
5673
  }
5674
5674
 
@@ -5691,7 +5691,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_INT(PyObject *operand1, PyObject *opera
5691
5691
  }
5692
5692
  }
5693
5693
 
5694
- Py_DECREF(result);
5694
+ Py_DECREF_IMMORTAL(result);
5695
5695
  }
5696
5696
 
5697
5697
  if (checked_reverse_op == false) {
@@ -5714,7 +5714,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_INT(PyObject *operand1, PyObject *opera
5714
5714
  }
5715
5715
  }
5716
5716
 
5717
- Py_DECREF(result);
5717
+ Py_DECREF_IMMORTAL(result);
5718
5718
  }
5719
5719
  }
5720
5720
 
@@ -5790,7 +5790,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_INT_OBJECT(PyObject *operand1, PyObject *opera
5790
5790
  }
5791
5791
  }
5792
5792
 
5793
- Py_DECREF(result);
5793
+ Py_DECREF_IMMORTAL(result);
5794
5794
  }
5795
5795
 
5796
5796
  // No rich comparison worked, but maybe compare works.
@@ -5859,7 +5859,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_INT_OBJECT(PyObject *operand1, PyObject *opera
5859
5859
  }
5860
5860
  }
5861
5861
 
5862
- Py_DECREF(result);
5862
+ Py_DECREF_IMMORTAL(result);
5863
5863
  }
5864
5864
  }
5865
5865
 
@@ -5881,7 +5881,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_INT_OBJECT(PyObject *operand1, PyObject *opera
5881
5881
  }
5882
5882
  }
5883
5883
 
5884
- Py_DECREF(result);
5884
+ Py_DECREF_IMMORTAL(result);
5885
5885
  }
5886
5886
 
5887
5887
  f = RICHCOMPARE(type2);
@@ -5902,7 +5902,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_INT_OBJECT(PyObject *operand1, PyObject *opera
5902
5902
  }
5903
5903
  }
5904
5904
 
5905
- Py_DECREF(result);
5905
+ Py_DECREF_IMMORTAL(result);
5906
5906
  }
5907
5907
 
5908
5908
  int c;
@@ -6018,7 +6018,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_INT_OBJECT(PyObject *operand1, PyObject *opera
6018
6018
  }
6019
6019
  }
6020
6020
 
6021
- Py_DECREF(result);
6021
+ Py_DECREF_IMMORTAL(result);
6022
6022
  }
6023
6023
  }
6024
6024
 
@@ -6041,7 +6041,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_INT_OBJECT(PyObject *operand1, PyObject *opera
6041
6041
  }
6042
6042
  }
6043
6043
 
6044
- Py_DECREF(result);
6044
+ Py_DECREF_IMMORTAL(result);
6045
6045
  }
6046
6046
 
6047
6047
  if (checked_reverse_op == false) {
@@ -6064,7 +6064,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_INT_OBJECT(PyObject *operand1, PyObject *opera
6064
6064
  }
6065
6065
  }
6066
6066
 
6067
- Py_DECREF(result);
6067
+ Py_DECREF_IMMORTAL(result);
6068
6068
  }
6069
6069
  }
6070
6070
 
@@ -6133,7 +6133,7 @@ static PyObject *COMPARE_GE_OBJECT_LONG_LONG(PyObject *operand1, PyObject *opera
6133
6133
 
6134
6134
  // Convert to target type.
6135
6135
  PyObject *result = BOOL_FROM(r);
6136
- Py_INCREF(result);
6136
+ Py_INCREF_IMMORTAL(result);
6137
6137
  return result;
6138
6138
  }
6139
6139
  /* Code referring to "OBJECT" corresponds to any Python object and "LONG" to Python2 'long', Python3 'int'. */
@@ -6170,7 +6170,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LONG(PyObject *operand1, PyObject *opera
6170
6170
  return result;
6171
6171
  }
6172
6172
 
6173
- Py_DECREF(result);
6173
+ Py_DECREF_IMMORTAL(result);
6174
6174
  }
6175
6175
 
6176
6176
  // No rich comparison worked, but maybe compare works.
@@ -6211,7 +6211,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LONG(PyObject *operand1, PyObject *opera
6211
6211
 
6212
6212
  bool r = c != 0;
6213
6213
  PyObject *result = BOOL_FROM(r);
6214
- Py_INCREF(result);
6214
+ Py_INCREF_IMMORTAL(result);
6215
6215
  return result;
6216
6216
  }
6217
6217
  }
@@ -6231,7 +6231,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LONG(PyObject *operand1, PyObject *opera
6231
6231
  return result;
6232
6232
  }
6233
6233
 
6234
- Py_DECREF(result);
6234
+ Py_DECREF_IMMORTAL(result);
6235
6235
  }
6236
6236
  }
6237
6237
 
@@ -6245,7 +6245,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LONG(PyObject *operand1, PyObject *opera
6245
6245
  return result;
6246
6246
  }
6247
6247
 
6248
- Py_DECREF(result);
6248
+ Py_DECREF_IMMORTAL(result);
6249
6249
  }
6250
6250
 
6251
6251
  f = (PYTHON_VERSION < 0x300 ? NULL : PyLong_Type.tp_richcompare);
@@ -6258,7 +6258,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LONG(PyObject *operand1, PyObject *opera
6258
6258
  return result;
6259
6259
  }
6260
6260
 
6261
- Py_DECREF(result);
6261
+ Py_DECREF_IMMORTAL(result);
6262
6262
  }
6263
6263
 
6264
6264
  int c;
@@ -6346,7 +6346,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LONG(PyObject *operand1, PyObject *opera
6346
6346
 
6347
6347
  bool r = c != 0;
6348
6348
  PyObject *result = BOOL_FROM(r);
6349
- Py_INCREF(result);
6349
+ Py_INCREF_IMMORTAL(result);
6350
6350
  return result;
6351
6351
  #else
6352
6352
  bool checked_reverse_op = false;
@@ -6366,7 +6366,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LONG(PyObject *operand1, PyObject *opera
6366
6366
  return result;
6367
6367
  }
6368
6368
 
6369
- Py_DECREF(result);
6369
+ Py_DECREF_IMMORTAL(result);
6370
6370
  }
6371
6371
  }
6372
6372
 
@@ -6381,7 +6381,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LONG(PyObject *operand1, PyObject *opera
6381
6381
  return result;
6382
6382
  }
6383
6383
 
6384
- Py_DECREF(result);
6384
+ Py_DECREF_IMMORTAL(result);
6385
6385
  }
6386
6386
 
6387
6387
  if (checked_reverse_op == false) {
@@ -6396,7 +6396,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LONG(PyObject *operand1, PyObject *opera
6396
6396
  return result;
6397
6397
  }
6398
6398
 
6399
- Py_DECREF(result);
6399
+ Py_DECREF_IMMORTAL(result);
6400
6400
  }
6401
6401
  }
6402
6402
 
@@ -6408,13 +6408,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LONG(PyObject *operand1, PyObject *opera
6408
6408
  case Py_EQ: {
6409
6409
  bool r = operand1 == operand2;
6410
6410
  PyObject *result = BOOL_FROM(r);
6411
- Py_INCREF(result);
6411
+ Py_INCREF_IMMORTAL(result);
6412
6412
  return result;
6413
6413
  }
6414
6414
  case Py_NE: {
6415
6415
  bool r = operand1 != operand2;
6416
6416
  PyObject *result = BOOL_FROM(r);
6417
- Py_INCREF(result);
6417
+ Py_INCREF_IMMORTAL(result);
6418
6418
  return result;
6419
6419
  }
6420
6420
  default:
@@ -6464,7 +6464,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LONG_OBJECT(PyObject *operand1, PyObject *opera
6464
6464
  return result;
6465
6465
  }
6466
6466
 
6467
- Py_DECREF(result);
6467
+ Py_DECREF_IMMORTAL(result);
6468
6468
  }
6469
6469
 
6470
6470
  // No rich comparison worked, but maybe compare works.
@@ -6505,7 +6505,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LONG_OBJECT(PyObject *operand1, PyObject *opera
6505
6505
 
6506
6506
  bool r = c != 0;
6507
6507
  PyObject *result = BOOL_FROM(r);
6508
- Py_INCREF(result);
6508
+ Py_INCREF_IMMORTAL(result);
6509
6509
  return result;
6510
6510
  }
6511
6511
  }
@@ -6525,7 +6525,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LONG_OBJECT(PyObject *operand1, PyObject *opera
6525
6525
  return result;
6526
6526
  }
6527
6527
 
6528
- Py_DECREF(result);
6528
+ Py_DECREF_IMMORTAL(result);
6529
6529
  }
6530
6530
  }
6531
6531
 
@@ -6539,7 +6539,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LONG_OBJECT(PyObject *operand1, PyObject *opera
6539
6539
  return result;
6540
6540
  }
6541
6541
 
6542
- Py_DECREF(result);
6542
+ Py_DECREF_IMMORTAL(result);
6543
6543
  }
6544
6544
 
6545
6545
  f = RICHCOMPARE(type2);
@@ -6552,7 +6552,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LONG_OBJECT(PyObject *operand1, PyObject *opera
6552
6552
  return result;
6553
6553
  }
6554
6554
 
6555
- Py_DECREF(result);
6555
+ Py_DECREF_IMMORTAL(result);
6556
6556
  }
6557
6557
 
6558
6558
  int c;
@@ -6640,7 +6640,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LONG_OBJECT(PyObject *operand1, PyObject *opera
6640
6640
 
6641
6641
  bool r = c != 0;
6642
6642
  PyObject *result = BOOL_FROM(r);
6643
- Py_INCREF(result);
6643
+ Py_INCREF_IMMORTAL(result);
6644
6644
  return result;
6645
6645
  #else
6646
6646
  bool checked_reverse_op = false;
@@ -6660,7 +6660,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LONG_OBJECT(PyObject *operand1, PyObject *opera
6660
6660
  return result;
6661
6661
  }
6662
6662
 
6663
- Py_DECREF(result);
6663
+ Py_DECREF_IMMORTAL(result);
6664
6664
  }
6665
6665
  }
6666
6666
 
@@ -6675,7 +6675,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LONG_OBJECT(PyObject *operand1, PyObject *opera
6675
6675
  return result;
6676
6676
  }
6677
6677
 
6678
- Py_DECREF(result);
6678
+ Py_DECREF_IMMORTAL(result);
6679
6679
  }
6680
6680
 
6681
6681
  if (checked_reverse_op == false) {
@@ -6690,7 +6690,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LONG_OBJECT(PyObject *operand1, PyObject *opera
6690
6690
  return result;
6691
6691
  }
6692
6692
 
6693
- Py_DECREF(result);
6693
+ Py_DECREF_IMMORTAL(result);
6694
6694
  }
6695
6695
  }
6696
6696
 
@@ -6702,13 +6702,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_LONG_OBJECT(PyObject *operand1, PyObject *opera
6702
6702
  case Py_EQ: {
6703
6703
  bool r = operand1 == operand2;
6704
6704
  PyObject *result = BOOL_FROM(r);
6705
- Py_INCREF(result);
6705
+ Py_INCREF_IMMORTAL(result);
6706
6706
  return result;
6707
6707
  }
6708
6708
  case Py_NE: {
6709
6709
  bool r = operand1 != operand2;
6710
6710
  PyObject *result = BOOL_FROM(r);
6711
- Py_INCREF(result);
6711
+ Py_INCREF_IMMORTAL(result);
6712
6712
  return result;
6713
6713
  }
6714
6714
  default:
@@ -6805,7 +6805,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_LONG(PyObject *operand1, PyObject *oper
6805
6805
  }
6806
6806
  }
6807
6807
 
6808
- Py_DECREF(result);
6808
+ Py_DECREF_IMMORTAL(result);
6809
6809
  }
6810
6810
 
6811
6811
  // No rich comparison worked, but maybe compare works.
@@ -6874,7 +6874,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_LONG(PyObject *operand1, PyObject *oper
6874
6874
  }
6875
6875
  }
6876
6876
 
6877
- Py_DECREF(result);
6877
+ Py_DECREF_IMMORTAL(result);
6878
6878
  }
6879
6879
  }
6880
6880
 
@@ -6896,7 +6896,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_LONG(PyObject *operand1, PyObject *oper
6896
6896
  }
6897
6897
  }
6898
6898
 
6899
- Py_DECREF(result);
6899
+ Py_DECREF_IMMORTAL(result);
6900
6900
  }
6901
6901
 
6902
6902
  f = (PYTHON_VERSION < 0x300 ? NULL : PyLong_Type.tp_richcompare);
@@ -6917,7 +6917,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_LONG(PyObject *operand1, PyObject *oper
6917
6917
  }
6918
6918
  }
6919
6919
 
6920
- Py_DECREF(result);
6920
+ Py_DECREF_IMMORTAL(result);
6921
6921
  }
6922
6922
 
6923
6923
  int c;
@@ -7033,7 +7033,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_LONG(PyObject *operand1, PyObject *oper
7033
7033
  }
7034
7034
  }
7035
7035
 
7036
- Py_DECREF(result);
7036
+ Py_DECREF_IMMORTAL(result);
7037
7037
  }
7038
7038
  }
7039
7039
 
@@ -7056,7 +7056,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_LONG(PyObject *operand1, PyObject *oper
7056
7056
  }
7057
7057
  }
7058
7058
 
7059
- Py_DECREF(result);
7059
+ Py_DECREF_IMMORTAL(result);
7060
7060
  }
7061
7061
 
7062
7062
  if (checked_reverse_op == false) {
@@ -7079,7 +7079,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_LONG(PyObject *operand1, PyObject *oper
7079
7079
  }
7080
7080
  }
7081
7081
 
7082
- Py_DECREF(result);
7082
+ Py_DECREF_IMMORTAL(result);
7083
7083
  }
7084
7084
  }
7085
7085
 
@@ -7155,7 +7155,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LONG_OBJECT(PyObject *operand1, PyObject *oper
7155
7155
  }
7156
7156
  }
7157
7157
 
7158
- Py_DECREF(result);
7158
+ Py_DECREF_IMMORTAL(result);
7159
7159
  }
7160
7160
 
7161
7161
  // No rich comparison worked, but maybe compare works.
@@ -7224,7 +7224,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LONG_OBJECT(PyObject *operand1, PyObject *oper
7224
7224
  }
7225
7225
  }
7226
7226
 
7227
- Py_DECREF(result);
7227
+ Py_DECREF_IMMORTAL(result);
7228
7228
  }
7229
7229
  }
7230
7230
 
@@ -7246,7 +7246,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LONG_OBJECT(PyObject *operand1, PyObject *oper
7246
7246
  }
7247
7247
  }
7248
7248
 
7249
- Py_DECREF(result);
7249
+ Py_DECREF_IMMORTAL(result);
7250
7250
  }
7251
7251
 
7252
7252
  f = RICHCOMPARE(type2);
@@ -7267,7 +7267,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LONG_OBJECT(PyObject *operand1, PyObject *oper
7267
7267
  }
7268
7268
  }
7269
7269
 
7270
- Py_DECREF(result);
7270
+ Py_DECREF_IMMORTAL(result);
7271
7271
  }
7272
7272
 
7273
7273
  int c;
@@ -7383,7 +7383,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LONG_OBJECT(PyObject *operand1, PyObject *oper
7383
7383
  }
7384
7384
  }
7385
7385
 
7386
- Py_DECREF(result);
7386
+ Py_DECREF_IMMORTAL(result);
7387
7387
  }
7388
7388
  }
7389
7389
 
@@ -7406,7 +7406,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LONG_OBJECT(PyObject *operand1, PyObject *oper
7406
7406
  }
7407
7407
  }
7408
7408
 
7409
- Py_DECREF(result);
7409
+ Py_DECREF_IMMORTAL(result);
7410
7410
  }
7411
7411
 
7412
7412
  if (checked_reverse_op == false) {
@@ -7429,7 +7429,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LONG_OBJECT(PyObject *operand1, PyObject *oper
7429
7429
  }
7430
7430
  }
7431
7431
 
7432
- Py_DECREF(result);
7432
+ Py_DECREF_IMMORTAL(result);
7433
7433
  }
7434
7434
  }
7435
7435
 
@@ -7476,7 +7476,7 @@ static PyObject *COMPARE_GE_OBJECT_FLOAT_FLOAT(PyObject *operand1, PyObject *ope
7476
7476
 
7477
7477
  // Convert to target type.
7478
7478
  PyObject *result = BOOL_FROM(r);
7479
- Py_INCREF(result);
7479
+ Py_INCREF_IMMORTAL(result);
7480
7480
  return result;
7481
7481
  }
7482
7482
  /* Code referring to "OBJECT" corresponds to any Python object and "FLOAT" to Python 'float'. */
@@ -7513,7 +7513,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_FLOAT(PyObject *operand1, PyObject *oper
7513
7513
  return result;
7514
7514
  }
7515
7515
 
7516
- Py_DECREF(result);
7516
+ Py_DECREF_IMMORTAL(result);
7517
7517
  }
7518
7518
 
7519
7519
  // No rich comparison worked, but maybe compare works.
@@ -7554,7 +7554,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_FLOAT(PyObject *operand1, PyObject *oper
7554
7554
 
7555
7555
  bool r = c != 0;
7556
7556
  PyObject *result = BOOL_FROM(r);
7557
- Py_INCREF(result);
7557
+ Py_INCREF_IMMORTAL(result);
7558
7558
  return result;
7559
7559
  }
7560
7560
  }
@@ -7574,7 +7574,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_FLOAT(PyObject *operand1, PyObject *oper
7574
7574
  return result;
7575
7575
  }
7576
7576
 
7577
- Py_DECREF(result);
7577
+ Py_DECREF_IMMORTAL(result);
7578
7578
  }
7579
7579
  }
7580
7580
 
@@ -7588,7 +7588,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_FLOAT(PyObject *operand1, PyObject *oper
7588
7588
  return result;
7589
7589
  }
7590
7590
 
7591
- Py_DECREF(result);
7591
+ Py_DECREF_IMMORTAL(result);
7592
7592
  }
7593
7593
 
7594
7594
  f = PyFloat_Type.tp_richcompare;
@@ -7601,7 +7601,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_FLOAT(PyObject *operand1, PyObject *oper
7601
7601
  return result;
7602
7602
  }
7603
7603
 
7604
- Py_DECREF(result);
7604
+ Py_DECREF_IMMORTAL(result);
7605
7605
  }
7606
7606
 
7607
7607
  int c;
@@ -7689,7 +7689,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_FLOAT(PyObject *operand1, PyObject *oper
7689
7689
 
7690
7690
  bool r = c != 0;
7691
7691
  PyObject *result = BOOL_FROM(r);
7692
- Py_INCREF(result);
7692
+ Py_INCREF_IMMORTAL(result);
7693
7693
  return result;
7694
7694
  #else
7695
7695
  bool checked_reverse_op = false;
@@ -7709,7 +7709,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_FLOAT(PyObject *operand1, PyObject *oper
7709
7709
  return result;
7710
7710
  }
7711
7711
 
7712
- Py_DECREF(result);
7712
+ Py_DECREF_IMMORTAL(result);
7713
7713
  }
7714
7714
  }
7715
7715
 
@@ -7724,7 +7724,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_FLOAT(PyObject *operand1, PyObject *oper
7724
7724
  return result;
7725
7725
  }
7726
7726
 
7727
- Py_DECREF(result);
7727
+ Py_DECREF_IMMORTAL(result);
7728
7728
  }
7729
7729
 
7730
7730
  if (checked_reverse_op == false) {
@@ -7739,7 +7739,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_FLOAT(PyObject *operand1, PyObject *oper
7739
7739
  return result;
7740
7740
  }
7741
7741
 
7742
- Py_DECREF(result);
7742
+ Py_DECREF_IMMORTAL(result);
7743
7743
  }
7744
7744
  }
7745
7745
 
@@ -7751,13 +7751,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_FLOAT(PyObject *operand1, PyObject *oper
7751
7751
  case Py_EQ: {
7752
7752
  bool r = operand1 == operand2;
7753
7753
  PyObject *result = BOOL_FROM(r);
7754
- Py_INCREF(result);
7754
+ Py_INCREF_IMMORTAL(result);
7755
7755
  return result;
7756
7756
  }
7757
7757
  case Py_NE: {
7758
7758
  bool r = operand1 != operand2;
7759
7759
  PyObject *result = BOOL_FROM(r);
7760
- Py_INCREF(result);
7760
+ Py_INCREF_IMMORTAL(result);
7761
7761
  return result;
7762
7762
  }
7763
7763
  default:
@@ -7805,7 +7805,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_FLOAT_OBJECT(PyObject *operand1, PyObject *oper
7805
7805
  return result;
7806
7806
  }
7807
7807
 
7808
- Py_DECREF(result);
7808
+ Py_DECREF_IMMORTAL(result);
7809
7809
  }
7810
7810
 
7811
7811
  // No rich comparison worked, but maybe compare works.
@@ -7846,7 +7846,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_FLOAT_OBJECT(PyObject *operand1, PyObject *oper
7846
7846
 
7847
7847
  bool r = c != 0;
7848
7848
  PyObject *result = BOOL_FROM(r);
7849
- Py_INCREF(result);
7849
+ Py_INCREF_IMMORTAL(result);
7850
7850
  return result;
7851
7851
  }
7852
7852
  }
@@ -7866,7 +7866,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_FLOAT_OBJECT(PyObject *operand1, PyObject *oper
7866
7866
  return result;
7867
7867
  }
7868
7868
 
7869
- Py_DECREF(result);
7869
+ Py_DECREF_IMMORTAL(result);
7870
7870
  }
7871
7871
  }
7872
7872
 
@@ -7880,7 +7880,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_FLOAT_OBJECT(PyObject *operand1, PyObject *oper
7880
7880
  return result;
7881
7881
  }
7882
7882
 
7883
- Py_DECREF(result);
7883
+ Py_DECREF_IMMORTAL(result);
7884
7884
  }
7885
7885
 
7886
7886
  f = RICHCOMPARE(type2);
@@ -7893,7 +7893,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_FLOAT_OBJECT(PyObject *operand1, PyObject *oper
7893
7893
  return result;
7894
7894
  }
7895
7895
 
7896
- Py_DECREF(result);
7896
+ Py_DECREF_IMMORTAL(result);
7897
7897
  }
7898
7898
 
7899
7899
  int c;
@@ -7981,7 +7981,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_FLOAT_OBJECT(PyObject *operand1, PyObject *oper
7981
7981
 
7982
7982
  bool r = c != 0;
7983
7983
  PyObject *result = BOOL_FROM(r);
7984
- Py_INCREF(result);
7984
+ Py_INCREF_IMMORTAL(result);
7985
7985
  return result;
7986
7986
  #else
7987
7987
  bool checked_reverse_op = false;
@@ -8001,7 +8001,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_FLOAT_OBJECT(PyObject *operand1, PyObject *oper
8001
8001
  return result;
8002
8002
  }
8003
8003
 
8004
- Py_DECREF(result);
8004
+ Py_DECREF_IMMORTAL(result);
8005
8005
  }
8006
8006
  }
8007
8007
 
@@ -8016,7 +8016,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_FLOAT_OBJECT(PyObject *operand1, PyObject *oper
8016
8016
  return result;
8017
8017
  }
8018
8018
 
8019
- Py_DECREF(result);
8019
+ Py_DECREF_IMMORTAL(result);
8020
8020
  }
8021
8021
 
8022
8022
  if (checked_reverse_op == false) {
@@ -8031,7 +8031,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_FLOAT_OBJECT(PyObject *operand1, PyObject *oper
8031
8031
  return result;
8032
8032
  }
8033
8033
 
8034
- Py_DECREF(result);
8034
+ Py_DECREF_IMMORTAL(result);
8035
8035
  }
8036
8036
  }
8037
8037
 
@@ -8043,13 +8043,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_FLOAT_OBJECT(PyObject *operand1, PyObject *oper
8043
8043
  case Py_EQ: {
8044
8044
  bool r = operand1 == operand2;
8045
8045
  PyObject *result = BOOL_FROM(r);
8046
- Py_INCREF(result);
8046
+ Py_INCREF_IMMORTAL(result);
8047
8047
  return result;
8048
8048
  }
8049
8049
  case Py_NE: {
8050
8050
  bool r = operand1 != operand2;
8051
8051
  PyObject *result = BOOL_FROM(r);
8052
- Py_INCREF(result);
8052
+ Py_INCREF_IMMORTAL(result);
8053
8053
  return result;
8054
8054
  }
8055
8055
  default:
@@ -8121,7 +8121,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_FLOAT(PyObject *operand1, PyObject *ope
8121
8121
  }
8122
8122
  }
8123
8123
 
8124
- Py_DECREF(result);
8124
+ Py_DECREF_IMMORTAL(result);
8125
8125
  }
8126
8126
 
8127
8127
  // No rich comparison worked, but maybe compare works.
@@ -8190,7 +8190,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_FLOAT(PyObject *operand1, PyObject *ope
8190
8190
  }
8191
8191
  }
8192
8192
 
8193
- Py_DECREF(result);
8193
+ Py_DECREF_IMMORTAL(result);
8194
8194
  }
8195
8195
  }
8196
8196
 
@@ -8212,7 +8212,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_FLOAT(PyObject *operand1, PyObject *ope
8212
8212
  }
8213
8213
  }
8214
8214
 
8215
- Py_DECREF(result);
8215
+ Py_DECREF_IMMORTAL(result);
8216
8216
  }
8217
8217
 
8218
8218
  f = PyFloat_Type.tp_richcompare;
@@ -8233,7 +8233,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_FLOAT(PyObject *operand1, PyObject *ope
8233
8233
  }
8234
8234
  }
8235
8235
 
8236
- Py_DECREF(result);
8236
+ Py_DECREF_IMMORTAL(result);
8237
8237
  }
8238
8238
 
8239
8239
  int c;
@@ -8349,7 +8349,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_FLOAT(PyObject *operand1, PyObject *ope
8349
8349
  }
8350
8350
  }
8351
8351
 
8352
- Py_DECREF(result);
8352
+ Py_DECREF_IMMORTAL(result);
8353
8353
  }
8354
8354
  }
8355
8355
 
@@ -8372,7 +8372,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_FLOAT(PyObject *operand1, PyObject *ope
8372
8372
  }
8373
8373
  }
8374
8374
 
8375
- Py_DECREF(result);
8375
+ Py_DECREF_IMMORTAL(result);
8376
8376
  }
8377
8377
 
8378
8378
  if (checked_reverse_op == false) {
@@ -8395,7 +8395,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_FLOAT(PyObject *operand1, PyObject *ope
8395
8395
  }
8396
8396
  }
8397
8397
 
8398
- Py_DECREF(result);
8398
+ Py_DECREF_IMMORTAL(result);
8399
8399
  }
8400
8400
  }
8401
8401
 
@@ -8469,7 +8469,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_FLOAT_OBJECT(PyObject *operand1, PyObject *ope
8469
8469
  }
8470
8470
  }
8471
8471
 
8472
- Py_DECREF(result);
8472
+ Py_DECREF_IMMORTAL(result);
8473
8473
  }
8474
8474
 
8475
8475
  // No rich comparison worked, but maybe compare works.
@@ -8538,7 +8538,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_FLOAT_OBJECT(PyObject *operand1, PyObject *ope
8538
8538
  }
8539
8539
  }
8540
8540
 
8541
- Py_DECREF(result);
8541
+ Py_DECREF_IMMORTAL(result);
8542
8542
  }
8543
8543
  }
8544
8544
 
@@ -8560,7 +8560,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_FLOAT_OBJECT(PyObject *operand1, PyObject *ope
8560
8560
  }
8561
8561
  }
8562
8562
 
8563
- Py_DECREF(result);
8563
+ Py_DECREF_IMMORTAL(result);
8564
8564
  }
8565
8565
 
8566
8566
  f = RICHCOMPARE(type2);
@@ -8581,7 +8581,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_FLOAT_OBJECT(PyObject *operand1, PyObject *ope
8581
8581
  }
8582
8582
  }
8583
8583
 
8584
- Py_DECREF(result);
8584
+ Py_DECREF_IMMORTAL(result);
8585
8585
  }
8586
8586
 
8587
8587
  int c;
@@ -8697,7 +8697,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_FLOAT_OBJECT(PyObject *operand1, PyObject *ope
8697
8697
  }
8698
8698
  }
8699
8699
 
8700
- Py_DECREF(result);
8700
+ Py_DECREF_IMMORTAL(result);
8701
8701
  }
8702
8702
  }
8703
8703
 
@@ -8720,7 +8720,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_FLOAT_OBJECT(PyObject *operand1, PyObject *ope
8720
8720
  }
8721
8721
  }
8722
8722
 
8723
- Py_DECREF(result);
8723
+ Py_DECREF_IMMORTAL(result);
8724
8724
  }
8725
8725
 
8726
8726
  if (checked_reverse_op == false) {
@@ -8743,7 +8743,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_FLOAT_OBJECT(PyObject *operand1, PyObject *ope
8743
8743
  }
8744
8744
  }
8745
8745
 
8746
- Py_DECREF(result);
8746
+ Py_DECREF_IMMORTAL(result);
8747
8747
  }
8748
8748
  }
8749
8749
 
@@ -8816,7 +8816,7 @@ static PyObject *COMPARE_GE_OBJECT_TUPLE_TUPLE(PyObject *operand1, PyObject *ope
8816
8816
 
8817
8817
  // Convert to target type.
8818
8818
  PyObject *result = BOOL_FROM(r);
8819
- Py_INCREF(result);
8819
+ Py_INCREF_IMMORTAL(result);
8820
8820
  return result;
8821
8821
  }
8822
8822
 
@@ -8856,7 +8856,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_TUPLE(PyObject *operand1, PyObject *oper
8856
8856
  return result;
8857
8857
  }
8858
8858
 
8859
- Py_DECREF(result);
8859
+ Py_DECREF_IMMORTAL(result);
8860
8860
  }
8861
8861
 
8862
8862
  // No rich comparison worked, but maybe compare works.
@@ -8897,7 +8897,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_TUPLE(PyObject *operand1, PyObject *oper
8897
8897
 
8898
8898
  bool r = c != 0;
8899
8899
  PyObject *result = BOOL_FROM(r);
8900
- Py_INCREF(result);
8900
+ Py_INCREF_IMMORTAL(result);
8901
8901
  return result;
8902
8902
  }
8903
8903
  }
@@ -8917,7 +8917,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_TUPLE(PyObject *operand1, PyObject *oper
8917
8917
  return result;
8918
8918
  }
8919
8919
 
8920
- Py_DECREF(result);
8920
+ Py_DECREF_IMMORTAL(result);
8921
8921
  }
8922
8922
  }
8923
8923
 
@@ -8931,7 +8931,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_TUPLE(PyObject *operand1, PyObject *oper
8931
8931
  return result;
8932
8932
  }
8933
8933
 
8934
- Py_DECREF(result);
8934
+ Py_DECREF_IMMORTAL(result);
8935
8935
  }
8936
8936
 
8937
8937
  f = PyTuple_Type.tp_richcompare;
@@ -8944,7 +8944,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_TUPLE(PyObject *operand1, PyObject *oper
8944
8944
  return result;
8945
8945
  }
8946
8946
 
8947
- Py_DECREF(result);
8947
+ Py_DECREF_IMMORTAL(result);
8948
8948
  }
8949
8949
 
8950
8950
  int c;
@@ -9032,7 +9032,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_TUPLE(PyObject *operand1, PyObject *oper
9032
9032
 
9033
9033
  bool r = c != 0;
9034
9034
  PyObject *result = BOOL_FROM(r);
9035
- Py_INCREF(result);
9035
+ Py_INCREF_IMMORTAL(result);
9036
9036
  return result;
9037
9037
  #else
9038
9038
  bool checked_reverse_op = false;
@@ -9052,7 +9052,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_TUPLE(PyObject *operand1, PyObject *oper
9052
9052
  return result;
9053
9053
  }
9054
9054
 
9055
- Py_DECREF(result);
9055
+ Py_DECREF_IMMORTAL(result);
9056
9056
  }
9057
9057
  }
9058
9058
 
@@ -9067,7 +9067,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_TUPLE(PyObject *operand1, PyObject *oper
9067
9067
  return result;
9068
9068
  }
9069
9069
 
9070
- Py_DECREF(result);
9070
+ Py_DECREF_IMMORTAL(result);
9071
9071
  }
9072
9072
 
9073
9073
  if (checked_reverse_op == false) {
@@ -9082,7 +9082,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_TUPLE(PyObject *operand1, PyObject *oper
9082
9082
  return result;
9083
9083
  }
9084
9084
 
9085
- Py_DECREF(result);
9085
+ Py_DECREF_IMMORTAL(result);
9086
9086
  }
9087
9087
  }
9088
9088
 
@@ -9094,13 +9094,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_TUPLE(PyObject *operand1, PyObject *oper
9094
9094
  case Py_EQ: {
9095
9095
  bool r = operand1 == operand2;
9096
9096
  PyObject *result = BOOL_FROM(r);
9097
- Py_INCREF(result);
9097
+ Py_INCREF_IMMORTAL(result);
9098
9098
  return result;
9099
9099
  }
9100
9100
  case Py_NE: {
9101
9101
  bool r = operand1 != operand2;
9102
9102
  PyObject *result = BOOL_FROM(r);
9103
- Py_INCREF(result);
9103
+ Py_INCREF_IMMORTAL(result);
9104
9104
  return result;
9105
9105
  }
9106
9106
  default:
@@ -9148,7 +9148,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_TUPLE_OBJECT(PyObject *operand1, PyObject *oper
9148
9148
  return result;
9149
9149
  }
9150
9150
 
9151
- Py_DECREF(result);
9151
+ Py_DECREF_IMMORTAL(result);
9152
9152
  }
9153
9153
 
9154
9154
  // No rich comparison worked, but maybe compare works.
@@ -9189,7 +9189,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_TUPLE_OBJECT(PyObject *operand1, PyObject *oper
9189
9189
 
9190
9190
  bool r = c != 0;
9191
9191
  PyObject *result = BOOL_FROM(r);
9192
- Py_INCREF(result);
9192
+ Py_INCREF_IMMORTAL(result);
9193
9193
  return result;
9194
9194
  }
9195
9195
  }
@@ -9209,7 +9209,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_TUPLE_OBJECT(PyObject *operand1, PyObject *oper
9209
9209
  return result;
9210
9210
  }
9211
9211
 
9212
- Py_DECREF(result);
9212
+ Py_DECREF_IMMORTAL(result);
9213
9213
  }
9214
9214
  }
9215
9215
 
@@ -9223,7 +9223,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_TUPLE_OBJECT(PyObject *operand1, PyObject *oper
9223
9223
  return result;
9224
9224
  }
9225
9225
 
9226
- Py_DECREF(result);
9226
+ Py_DECREF_IMMORTAL(result);
9227
9227
  }
9228
9228
 
9229
9229
  f = RICHCOMPARE(type2);
@@ -9236,7 +9236,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_TUPLE_OBJECT(PyObject *operand1, PyObject *oper
9236
9236
  return result;
9237
9237
  }
9238
9238
 
9239
- Py_DECREF(result);
9239
+ Py_DECREF_IMMORTAL(result);
9240
9240
  }
9241
9241
 
9242
9242
  int c;
@@ -9324,7 +9324,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_TUPLE_OBJECT(PyObject *operand1, PyObject *oper
9324
9324
 
9325
9325
  bool r = c != 0;
9326
9326
  PyObject *result = BOOL_FROM(r);
9327
- Py_INCREF(result);
9327
+ Py_INCREF_IMMORTAL(result);
9328
9328
  return result;
9329
9329
  #else
9330
9330
  bool checked_reverse_op = false;
@@ -9344,7 +9344,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_TUPLE_OBJECT(PyObject *operand1, PyObject *oper
9344
9344
  return result;
9345
9345
  }
9346
9346
 
9347
- Py_DECREF(result);
9347
+ Py_DECREF_IMMORTAL(result);
9348
9348
  }
9349
9349
  }
9350
9350
 
@@ -9359,7 +9359,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_TUPLE_OBJECT(PyObject *operand1, PyObject *oper
9359
9359
  return result;
9360
9360
  }
9361
9361
 
9362
- Py_DECREF(result);
9362
+ Py_DECREF_IMMORTAL(result);
9363
9363
  }
9364
9364
 
9365
9365
  if (checked_reverse_op == false) {
@@ -9374,7 +9374,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_TUPLE_OBJECT(PyObject *operand1, PyObject *oper
9374
9374
  return result;
9375
9375
  }
9376
9376
 
9377
- Py_DECREF(result);
9377
+ Py_DECREF_IMMORTAL(result);
9378
9378
  }
9379
9379
  }
9380
9380
 
@@ -9386,13 +9386,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_TUPLE_OBJECT(PyObject *operand1, PyObject *oper
9386
9386
  case Py_EQ: {
9387
9387
  bool r = operand1 == operand2;
9388
9388
  PyObject *result = BOOL_FROM(r);
9389
- Py_INCREF(result);
9389
+ Py_INCREF_IMMORTAL(result);
9390
9390
  return result;
9391
9391
  }
9392
9392
  case Py_NE: {
9393
9393
  bool r = operand1 != operand2;
9394
9394
  PyObject *result = BOOL_FROM(r);
9395
- Py_INCREF(result);
9395
+ Py_INCREF_IMMORTAL(result);
9396
9396
  return result;
9397
9397
  }
9398
9398
  default:
@@ -9501,7 +9501,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_TUPLE(PyObject *operand1, PyObject *ope
9501
9501
  }
9502
9502
  }
9503
9503
 
9504
- Py_DECREF(result);
9504
+ Py_DECREF_IMMORTAL(result);
9505
9505
  }
9506
9506
 
9507
9507
  // No rich comparison worked, but maybe compare works.
@@ -9570,7 +9570,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_TUPLE(PyObject *operand1, PyObject *ope
9570
9570
  }
9571
9571
  }
9572
9572
 
9573
- Py_DECREF(result);
9573
+ Py_DECREF_IMMORTAL(result);
9574
9574
  }
9575
9575
  }
9576
9576
 
@@ -9592,7 +9592,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_TUPLE(PyObject *operand1, PyObject *ope
9592
9592
  }
9593
9593
  }
9594
9594
 
9595
- Py_DECREF(result);
9595
+ Py_DECREF_IMMORTAL(result);
9596
9596
  }
9597
9597
 
9598
9598
  f = PyTuple_Type.tp_richcompare;
@@ -9613,7 +9613,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_TUPLE(PyObject *operand1, PyObject *ope
9613
9613
  }
9614
9614
  }
9615
9615
 
9616
- Py_DECREF(result);
9616
+ Py_DECREF_IMMORTAL(result);
9617
9617
  }
9618
9618
 
9619
9619
  int c;
@@ -9729,7 +9729,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_TUPLE(PyObject *operand1, PyObject *ope
9729
9729
  }
9730
9730
  }
9731
9731
 
9732
- Py_DECREF(result);
9732
+ Py_DECREF_IMMORTAL(result);
9733
9733
  }
9734
9734
  }
9735
9735
 
@@ -9752,7 +9752,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_TUPLE(PyObject *operand1, PyObject *ope
9752
9752
  }
9753
9753
  }
9754
9754
 
9755
- Py_DECREF(result);
9755
+ Py_DECREF_IMMORTAL(result);
9756
9756
  }
9757
9757
 
9758
9758
  if (checked_reverse_op == false) {
@@ -9775,7 +9775,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_TUPLE(PyObject *operand1, PyObject *ope
9775
9775
  }
9776
9776
  }
9777
9777
 
9778
- Py_DECREF(result);
9778
+ Py_DECREF_IMMORTAL(result);
9779
9779
  }
9780
9780
  }
9781
9781
 
@@ -9849,7 +9849,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_TUPLE_OBJECT(PyObject *operand1, PyObject *ope
9849
9849
  }
9850
9850
  }
9851
9851
 
9852
- Py_DECREF(result);
9852
+ Py_DECREF_IMMORTAL(result);
9853
9853
  }
9854
9854
 
9855
9855
  // No rich comparison worked, but maybe compare works.
@@ -9918,7 +9918,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_TUPLE_OBJECT(PyObject *operand1, PyObject *ope
9918
9918
  }
9919
9919
  }
9920
9920
 
9921
- Py_DECREF(result);
9921
+ Py_DECREF_IMMORTAL(result);
9922
9922
  }
9923
9923
  }
9924
9924
 
@@ -9940,7 +9940,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_TUPLE_OBJECT(PyObject *operand1, PyObject *ope
9940
9940
  }
9941
9941
  }
9942
9942
 
9943
- Py_DECREF(result);
9943
+ Py_DECREF_IMMORTAL(result);
9944
9944
  }
9945
9945
 
9946
9946
  f = RICHCOMPARE(type2);
@@ -9961,7 +9961,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_TUPLE_OBJECT(PyObject *operand1, PyObject *ope
9961
9961
  }
9962
9962
  }
9963
9963
 
9964
- Py_DECREF(result);
9964
+ Py_DECREF_IMMORTAL(result);
9965
9965
  }
9966
9966
 
9967
9967
  int c;
@@ -10077,7 +10077,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_TUPLE_OBJECT(PyObject *operand1, PyObject *ope
10077
10077
  }
10078
10078
  }
10079
10079
 
10080
- Py_DECREF(result);
10080
+ Py_DECREF_IMMORTAL(result);
10081
10081
  }
10082
10082
  }
10083
10083
 
@@ -10100,7 +10100,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_TUPLE_OBJECT(PyObject *operand1, PyObject *ope
10100
10100
  }
10101
10101
  }
10102
10102
 
10103
- Py_DECREF(result);
10103
+ Py_DECREF_IMMORTAL(result);
10104
10104
  }
10105
10105
 
10106
10106
  if (checked_reverse_op == false) {
@@ -10123,7 +10123,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_TUPLE_OBJECT(PyObject *operand1, PyObject *ope
10123
10123
  }
10124
10124
  }
10125
10125
 
10126
- Py_DECREF(result);
10126
+ Py_DECREF_IMMORTAL(result);
10127
10127
  }
10128
10128
  }
10129
10129
 
@@ -10203,7 +10203,7 @@ static PyObject *COMPARE_GE_OBJECT_LIST_LIST(PyObject *operand1, PyObject *opera
10203
10203
 
10204
10204
  // Convert to target type.
10205
10205
  PyObject *result = BOOL_FROM(r);
10206
- Py_INCREF(result);
10206
+ Py_INCREF_IMMORTAL(result);
10207
10207
  return result;
10208
10208
  }
10209
10209
 
@@ -10243,7 +10243,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LIST(PyObject *operand1, PyObject *opera
10243
10243
  return result;
10244
10244
  }
10245
10245
 
10246
- Py_DECREF(result);
10246
+ Py_DECREF_IMMORTAL(result);
10247
10247
  }
10248
10248
 
10249
10249
  // No rich comparison worked, but maybe compare works.
@@ -10284,7 +10284,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LIST(PyObject *operand1, PyObject *opera
10284
10284
 
10285
10285
  bool r = c != 0;
10286
10286
  PyObject *result = BOOL_FROM(r);
10287
- Py_INCREF(result);
10287
+ Py_INCREF_IMMORTAL(result);
10288
10288
  return result;
10289
10289
  }
10290
10290
  }
@@ -10304,7 +10304,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LIST(PyObject *operand1, PyObject *opera
10304
10304
  return result;
10305
10305
  }
10306
10306
 
10307
- Py_DECREF(result);
10307
+ Py_DECREF_IMMORTAL(result);
10308
10308
  }
10309
10309
  }
10310
10310
 
@@ -10318,7 +10318,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LIST(PyObject *operand1, PyObject *opera
10318
10318
  return result;
10319
10319
  }
10320
10320
 
10321
- Py_DECREF(result);
10321
+ Py_DECREF_IMMORTAL(result);
10322
10322
  }
10323
10323
 
10324
10324
  f = PyList_Type.tp_richcompare;
@@ -10331,7 +10331,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LIST(PyObject *operand1, PyObject *opera
10331
10331
  return result;
10332
10332
  }
10333
10333
 
10334
- Py_DECREF(result);
10334
+ Py_DECREF_IMMORTAL(result);
10335
10335
  }
10336
10336
 
10337
10337
  int c;
@@ -10419,7 +10419,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LIST(PyObject *operand1, PyObject *opera
10419
10419
 
10420
10420
  bool r = c != 0;
10421
10421
  PyObject *result = BOOL_FROM(r);
10422
- Py_INCREF(result);
10422
+ Py_INCREF_IMMORTAL(result);
10423
10423
  return result;
10424
10424
  #else
10425
10425
  bool checked_reverse_op = false;
@@ -10439,7 +10439,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LIST(PyObject *operand1, PyObject *opera
10439
10439
  return result;
10440
10440
  }
10441
10441
 
10442
- Py_DECREF(result);
10442
+ Py_DECREF_IMMORTAL(result);
10443
10443
  }
10444
10444
  }
10445
10445
 
@@ -10454,7 +10454,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LIST(PyObject *operand1, PyObject *opera
10454
10454
  return result;
10455
10455
  }
10456
10456
 
10457
- Py_DECREF(result);
10457
+ Py_DECREF_IMMORTAL(result);
10458
10458
  }
10459
10459
 
10460
10460
  if (checked_reverse_op == false) {
@@ -10469,7 +10469,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LIST(PyObject *operand1, PyObject *opera
10469
10469
  return result;
10470
10470
  }
10471
10471
 
10472
- Py_DECREF(result);
10472
+ Py_DECREF_IMMORTAL(result);
10473
10473
  }
10474
10474
  }
10475
10475
 
@@ -10481,13 +10481,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_LIST(PyObject *operand1, PyObject *opera
10481
10481
  case Py_EQ: {
10482
10482
  bool r = operand1 == operand2;
10483
10483
  PyObject *result = BOOL_FROM(r);
10484
- Py_INCREF(result);
10484
+ Py_INCREF_IMMORTAL(result);
10485
10485
  return result;
10486
10486
  }
10487
10487
  case Py_NE: {
10488
10488
  bool r = operand1 != operand2;
10489
10489
  PyObject *result = BOOL_FROM(r);
10490
- Py_INCREF(result);
10490
+ Py_INCREF_IMMORTAL(result);
10491
10491
  return result;
10492
10492
  }
10493
10493
  default:
@@ -10535,7 +10535,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LIST_OBJECT(PyObject *operand1, PyObject *opera
10535
10535
  return result;
10536
10536
  }
10537
10537
 
10538
- Py_DECREF(result);
10538
+ Py_DECREF_IMMORTAL(result);
10539
10539
  }
10540
10540
 
10541
10541
  // No rich comparison worked, but maybe compare works.
@@ -10576,7 +10576,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LIST_OBJECT(PyObject *operand1, PyObject *opera
10576
10576
 
10577
10577
  bool r = c != 0;
10578
10578
  PyObject *result = BOOL_FROM(r);
10579
- Py_INCREF(result);
10579
+ Py_INCREF_IMMORTAL(result);
10580
10580
  return result;
10581
10581
  }
10582
10582
  }
@@ -10596,7 +10596,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LIST_OBJECT(PyObject *operand1, PyObject *opera
10596
10596
  return result;
10597
10597
  }
10598
10598
 
10599
- Py_DECREF(result);
10599
+ Py_DECREF_IMMORTAL(result);
10600
10600
  }
10601
10601
  }
10602
10602
 
@@ -10610,7 +10610,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LIST_OBJECT(PyObject *operand1, PyObject *opera
10610
10610
  return result;
10611
10611
  }
10612
10612
 
10613
- Py_DECREF(result);
10613
+ Py_DECREF_IMMORTAL(result);
10614
10614
  }
10615
10615
 
10616
10616
  f = RICHCOMPARE(type2);
@@ -10623,7 +10623,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LIST_OBJECT(PyObject *operand1, PyObject *opera
10623
10623
  return result;
10624
10624
  }
10625
10625
 
10626
- Py_DECREF(result);
10626
+ Py_DECREF_IMMORTAL(result);
10627
10627
  }
10628
10628
 
10629
10629
  int c;
@@ -10711,7 +10711,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LIST_OBJECT(PyObject *operand1, PyObject *opera
10711
10711
 
10712
10712
  bool r = c != 0;
10713
10713
  PyObject *result = BOOL_FROM(r);
10714
- Py_INCREF(result);
10714
+ Py_INCREF_IMMORTAL(result);
10715
10715
  return result;
10716
10716
  #else
10717
10717
  bool checked_reverse_op = false;
@@ -10731,7 +10731,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LIST_OBJECT(PyObject *operand1, PyObject *opera
10731
10731
  return result;
10732
10732
  }
10733
10733
 
10734
- Py_DECREF(result);
10734
+ Py_DECREF_IMMORTAL(result);
10735
10735
  }
10736
10736
  }
10737
10737
 
@@ -10746,7 +10746,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LIST_OBJECT(PyObject *operand1, PyObject *opera
10746
10746
  return result;
10747
10747
  }
10748
10748
 
10749
- Py_DECREF(result);
10749
+ Py_DECREF_IMMORTAL(result);
10750
10750
  }
10751
10751
 
10752
10752
  if (checked_reverse_op == false) {
@@ -10761,7 +10761,7 @@ PyObject *RICH_COMPARE_GE_OBJECT_LIST_OBJECT(PyObject *operand1, PyObject *opera
10761
10761
  return result;
10762
10762
  }
10763
10763
 
10764
- Py_DECREF(result);
10764
+ Py_DECREF_IMMORTAL(result);
10765
10765
  }
10766
10766
  }
10767
10767
 
@@ -10773,13 +10773,13 @@ PyObject *RICH_COMPARE_GE_OBJECT_LIST_OBJECT(PyObject *operand1, PyObject *opera
10773
10773
  case Py_EQ: {
10774
10774
  bool r = operand1 == operand2;
10775
10775
  PyObject *result = BOOL_FROM(r);
10776
- Py_INCREF(result);
10776
+ Py_INCREF_IMMORTAL(result);
10777
10777
  return result;
10778
10778
  }
10779
10779
  case Py_NE: {
10780
10780
  bool r = operand1 != operand2;
10781
10781
  PyObject *result = BOOL_FROM(r);
10782
- Py_INCREF(result);
10782
+ Py_INCREF_IMMORTAL(result);
10783
10783
  return result;
10784
10784
  }
10785
10785
  default:
@@ -10889,7 +10889,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_LIST(PyObject *operand1, PyObject *oper
10889
10889
  }
10890
10890
  }
10891
10891
 
10892
- Py_DECREF(result);
10892
+ Py_DECREF_IMMORTAL(result);
10893
10893
  }
10894
10894
 
10895
10895
  // No rich comparison worked, but maybe compare works.
@@ -10958,7 +10958,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_LIST(PyObject *operand1, PyObject *oper
10958
10958
  }
10959
10959
  }
10960
10960
 
10961
- Py_DECREF(result);
10961
+ Py_DECREF_IMMORTAL(result);
10962
10962
  }
10963
10963
  }
10964
10964
 
@@ -10980,7 +10980,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_LIST(PyObject *operand1, PyObject *oper
10980
10980
  }
10981
10981
  }
10982
10982
 
10983
- Py_DECREF(result);
10983
+ Py_DECREF_IMMORTAL(result);
10984
10984
  }
10985
10985
 
10986
10986
  f = PyList_Type.tp_richcompare;
@@ -11001,7 +11001,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_LIST(PyObject *operand1, PyObject *oper
11001
11001
  }
11002
11002
  }
11003
11003
 
11004
- Py_DECREF(result);
11004
+ Py_DECREF_IMMORTAL(result);
11005
11005
  }
11006
11006
 
11007
11007
  int c;
@@ -11117,7 +11117,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_LIST(PyObject *operand1, PyObject *oper
11117
11117
  }
11118
11118
  }
11119
11119
 
11120
- Py_DECREF(result);
11120
+ Py_DECREF_IMMORTAL(result);
11121
11121
  }
11122
11122
  }
11123
11123
 
@@ -11140,7 +11140,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_LIST(PyObject *operand1, PyObject *oper
11140
11140
  }
11141
11141
  }
11142
11142
 
11143
- Py_DECREF(result);
11143
+ Py_DECREF_IMMORTAL(result);
11144
11144
  }
11145
11145
 
11146
11146
  if (checked_reverse_op == false) {
@@ -11163,7 +11163,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_LIST(PyObject *operand1, PyObject *oper
11163
11163
  }
11164
11164
  }
11165
11165
 
11166
- Py_DECREF(result);
11166
+ Py_DECREF_IMMORTAL(result);
11167
11167
  }
11168
11168
  }
11169
11169
 
@@ -11237,7 +11237,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LIST_OBJECT(PyObject *operand1, PyObject *oper
11237
11237
  }
11238
11238
  }
11239
11239
 
11240
- Py_DECREF(result);
11240
+ Py_DECREF_IMMORTAL(result);
11241
11241
  }
11242
11242
 
11243
11243
  // No rich comparison worked, but maybe compare works.
@@ -11306,7 +11306,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LIST_OBJECT(PyObject *operand1, PyObject *oper
11306
11306
  }
11307
11307
  }
11308
11308
 
11309
- Py_DECREF(result);
11309
+ Py_DECREF_IMMORTAL(result);
11310
11310
  }
11311
11311
  }
11312
11312
 
@@ -11328,7 +11328,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LIST_OBJECT(PyObject *operand1, PyObject *oper
11328
11328
  }
11329
11329
  }
11330
11330
 
11331
- Py_DECREF(result);
11331
+ Py_DECREF_IMMORTAL(result);
11332
11332
  }
11333
11333
 
11334
11334
  f = RICHCOMPARE(type2);
@@ -11349,7 +11349,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LIST_OBJECT(PyObject *operand1, PyObject *oper
11349
11349
  }
11350
11350
  }
11351
11351
 
11352
- Py_DECREF(result);
11352
+ Py_DECREF_IMMORTAL(result);
11353
11353
  }
11354
11354
 
11355
11355
  int c;
@@ -11465,7 +11465,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LIST_OBJECT(PyObject *operand1, PyObject *oper
11465
11465
  }
11466
11466
  }
11467
11467
 
11468
- Py_DECREF(result);
11468
+ Py_DECREF_IMMORTAL(result);
11469
11469
  }
11470
11470
  }
11471
11471
 
@@ -11488,7 +11488,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LIST_OBJECT(PyObject *operand1, PyObject *oper
11488
11488
  }
11489
11489
  }
11490
11490
 
11491
- Py_DECREF(result);
11491
+ Py_DECREF_IMMORTAL(result);
11492
11492
  }
11493
11493
 
11494
11494
  if (checked_reverse_op == false) {
@@ -11511,7 +11511,7 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LIST_OBJECT(PyObject *operand1, PyObject *oper
11511
11511
  }
11512
11512
  }
11513
11513
 
11514
- Py_DECREF(result);
11514
+ Py_DECREF_IMMORTAL(result);
11515
11515
  }
11516
11516
  }
11517
11517
 
@@ -11603,7 +11603,7 @@ static PyObject *COMPARE_GE_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11603
11603
 
11604
11604
  // Convert to target type.
11605
11605
  PyObject *result = BOOL_FROM(r);
11606
- Py_INCREF(result);
11606
+ Py_INCREF_IMMORTAL(result);
11607
11607
  return result;
11608
11608
  }
11609
11609
  /* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "INT" to Python2 'int'. */
@@ -11689,7 +11689,7 @@ static PyObject *COMPARE_GE_OBJECT_INT_CLONG(PyObject *operand1, long operand2)
11689
11689
 
11690
11690
  // Convert to target type.
11691
11691
  PyObject *result = BOOL_FROM(r);
11692
- Py_INCREF(result);
11692
+ Py_INCREF_IMMORTAL(result);
11693
11693
  return result;
11694
11694
  }
11695
11695
  /* Code referring to "INT" corresponds to Python2 'int' and "CLONG" to C platform long value. */
@@ -11751,7 +11751,7 @@ static PyObject *COMPARE_GE_OBJECT_LONG_DIGIT(PyObject *operand1, long operand2)
11751
11751
 
11752
11752
  // Convert to target type.
11753
11753
  PyObject *result = BOOL_FROM(r);
11754
- Py_INCREF(result);
11754
+ Py_INCREF_IMMORTAL(result);
11755
11755
  return result;
11756
11756
  }
11757
11757
  /* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "DIGIT" to C platform digit value for long
@@ -11812,7 +11812,7 @@ static PyObject *COMPARE_GE_OBJECT_FLOAT_CFLOAT(PyObject *operand1, double opera
11812
11812
 
11813
11813
  // Convert to target type.
11814
11814
  PyObject *result = BOOL_FROM(r);
11815
- Py_INCREF(result);
11815
+ Py_INCREF_IMMORTAL(result);
11816
11816
  return result;
11817
11817
  }
11818
11818
  /* Code referring to "FLOAT" corresponds to Python 'float' and "CFLOAT" to C platform float value. */