| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 72e3dff commit c1c92cf
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -484,7 +484,7 @@ static inline Py_ALWAYS_INLINE void Py_DECREF(PyObject *op) | |||
| 484 | 484 | do { \ | |
| 485 | 485 | _Py_TYPEOF(op)* _tmp_op_ptr = &(op); \ | |
| 486 | 486 | _Py_TYPEOF(op) _tmp_old_op = (*_tmp_op_ptr); \ | |
| 487 | - if (_tmp_old_op != NULL) { \ | ||
| 487 | + if (_tmp_old_op != _Py_NULL) { \ | ||
| 488 | 488 | *_tmp_op_ptr = _Py_NULL; \ | |
| 489 | 489 | Py_DECREF(_tmp_old_op); \ | |
| 490 | 490 | } \ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -95,9 +95,17 @@ _testcext_exec(PyObject *module) | |||
| 95 | 95 | Py_BUILD_ASSERT(sizeof(int) == sizeof(unsigned int)); | |
| 96 | 96 | assert(Py_BUILD_ASSERT_EXPR(sizeof(int) == sizeof(unsigned int)) == 0); | |
| 97 | 97 | ||
| 98 | - // Test Py_CLEAR() | ||
| 99 | - obj = NULL; | ||
| 98 | + // Test Py_CLEAR(): use typeof()/__typeof__() if available, or memcpy() | ||
| 99 | + obj = Py_None; | ||
| 100 | 100 | Py_CLEAR(obj); | |
| 101 | + assert(obj == NULL); | ||
| 102 | + | ||
| 103 | + #ifndef Py_LIMITED_API | ||
| 104 | + // Test Py_SETREF(): use typeof()/__typeof__() if available, or memcpy() | ||
| 105 | + obj = Py_None; | ||
| 106 | + Py_SETREF(obj, NULL); | ||
| 107 | + assert(obj == NULL); | ||
| 108 | + #endif | ||
| 101 | 109 | ||
| 102 | 110 | // Test that Py_BEGIN_CRITICAL_SECTION is available | |
| 103 | 111 | Py_BEGIN_CRITICAL_SECTION(module); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -294,6 +294,22 @@ _testcppext_exec(PyObject *module) | |||
| 294 | 294 | Py_BUILD_ASSERT(sizeof(int) == sizeof(unsigned int)); | |
| 295 | 295 | assert(Py_BUILD_ASSERT_EXPR(sizeof(int) == sizeof(unsigned int)) == 0); | |
| 296 | 296 | ||
| 297 | + // Test Py_CLEAR(): use typeof()/__typeof__() if available, or memcpy() | ||
| 298 | + PyObject *obj = Py_None; | ||
| 299 | + Py_CLEAR(obj); | ||
| 300 | + assert(obj == _Py_NULL); | ||
| 301 | + | ||
| 302 | + #ifndef Py_LIMITED_API | ||
| 303 | + // Test Py_SETREF(): use typeof()/__typeof__() if available, or memcpy() | ||
| 304 | + obj = Py_None; | ||
| 305 | + Py_SETREF(obj, _Py_NULL); | ||
| 306 | + assert(obj == _Py_NULL); | ||
| 307 | + #endif | ||
| 308 | + | ||
| 309 | + // Test that Py_BEGIN_CRITICAL_SECTION is available | ||
| 310 | + Py_BEGIN_CRITICAL_SECTION(module); | ||
| 311 | + Py_END_CRITICAL_SECTION(); | ||
| 312 | + | ||
| 297 | 313 | return 0; | |
| 298 | 314 | } | |
| 299 | 315 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments