mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	[3.13] gh-134411: assert PyLong_FromLong(x) != NULL when x is known to be small (GH-134415) (#136911)
				
					
				
			gh-134411: assert `PyLong_FromLong(x) != NULL` when `x` is known to be small (GH-134415)
Since `PyLong_From Long(PY_MONITORING_DEBUGGER_ID)` falls to `small_int` case and can't return `NULL`. Added `assert`s for extra confidence.
https://github.com/python/cpython/issues/134411#issuecomment-2897653868
(cherry picked from commit cf19b6435d)
Co-authored-by: Sergey Muraviov <smurav@mail.ru>
			
			
This commit is contained in:
		
							parent
							
								
									3ee46ccb6a
								
							
						
					
					
						commit
						f2f30c4947
					
				
					 1 changed files with 4 additions and 0 deletions
				
			
		|  | @ -2448,18 +2448,22 @@ PyObject *_Py_CreateMonitoringObject(void) | ||||||
|     err = PyObject_SetAttrString(events, "NO_EVENTS", _PyLong_GetZero()); |     err = PyObject_SetAttrString(events, "NO_EVENTS", _PyLong_GetZero()); | ||||||
|     if (err) goto error; |     if (err) goto error; | ||||||
|     PyObject *val = PyLong_FromLong(PY_MONITORING_DEBUGGER_ID); |     PyObject *val = PyLong_FromLong(PY_MONITORING_DEBUGGER_ID); | ||||||
|  |     assert(val != NULL); /* Can't return NULL because the int is small. */ | ||||||
|     err = PyObject_SetAttrString(mod, "DEBUGGER_ID", val); |     err = PyObject_SetAttrString(mod, "DEBUGGER_ID", val); | ||||||
|     Py_DECREF(val); |     Py_DECREF(val); | ||||||
|     if (err) goto error; |     if (err) goto error; | ||||||
|     val = PyLong_FromLong(PY_MONITORING_COVERAGE_ID); |     val = PyLong_FromLong(PY_MONITORING_COVERAGE_ID); | ||||||
|  |     assert(val != NULL); | ||||||
|     err = PyObject_SetAttrString(mod, "COVERAGE_ID", val); |     err = PyObject_SetAttrString(mod, "COVERAGE_ID", val); | ||||||
|     Py_DECREF(val); |     Py_DECREF(val); | ||||||
|     if (err) goto error; |     if (err) goto error; | ||||||
|     val = PyLong_FromLong(PY_MONITORING_PROFILER_ID); |     val = PyLong_FromLong(PY_MONITORING_PROFILER_ID); | ||||||
|  |     assert(val != NULL); | ||||||
|     err = PyObject_SetAttrString(mod, "PROFILER_ID", val); |     err = PyObject_SetAttrString(mod, "PROFILER_ID", val); | ||||||
|     Py_DECREF(val); |     Py_DECREF(val); | ||||||
|     if (err) goto error; |     if (err) goto error; | ||||||
|     val = PyLong_FromLong(PY_MONITORING_OPTIMIZER_ID); |     val = PyLong_FromLong(PY_MONITORING_OPTIMIZER_ID); | ||||||
|  |     assert(val != NULL); | ||||||
|     err = PyObject_SetAttrString(mod, "OPTIMIZER_ID", val); |     err = PyObject_SetAttrString(mod, "OPTIMIZER_ID", val); | ||||||
|     Py_DECREF(val); |     Py_DECREF(val); | ||||||
|     if (err) goto error; |     if (err) goto error; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Miss Islington (bot)
						Miss Islington (bot)