Skip to content

Commit f402e92

Browse files
committed
Issue python#16847: Fixed improper use of _PyUnicode_CheckConsistency() in
non-pydebug builds. Several extension modules now compile cleanly when assert()s are enabled in standard builds (-DDEBUG flag).
1 parent 6f84659 commit f402e92

6 files changed

Lines changed: 14 additions & 0 deletions

File tree

‎Misc/NEWS‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4293,6 +4293,10 @@ Tools/Demos
42934293
Extension Modules
42944294
-----------------
42954295

4296+
- Issue #16847: Fixed improper use of _PyUnicode_CheckConsistency() in
4297+
non-pydebug builds. Several extension modules now compile cleanly when
4298+
assert()s are enabled in standard builds (-DDEBUG flag).
4299+
42964300
- Issue #13840: The error message produced by ctypes.create_string_buffer
42974301
when given a Unicode string has been fixed.
42984302

‎Modules/_json.c‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,9 @@ ascii_escape_unicode(PyObject *pystr)
246246
}
247247
}
248248
output[chars++] = '"';
249+
#ifdef Py_DEBUG
249250
assert(_PyUnicode_CheckConsistency(rval, 1));
251+
#endif
250252
return rval;
251253
}
252254

‎Modules/md5module.c‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,9 @@ MD5_hexdigest(MD5object *self, PyObject *unused)
399399
c = (digest[i] & 0xf);
400400
hex_digest[j++] = Py_hexdigits[c];
401401
}
402+
#ifdef Py_DEBUG
402403
assert(_PyUnicode_CheckConsistency(retval, 1));
404+
#endif
403405
return retval;
404406
}
405407

‎Modules/sha1module.c‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,9 @@ SHA1_hexdigest(SHA1object *self, PyObject *unused)
376376
c = (digest[i] & 0xf);
377377
hex_digest[j++] = Py_hexdigits[c];
378378
}
379+
#ifdef Py_DEBUG
379380
assert(_PyUnicode_CheckConsistency(retval, 1));
381+
#endif
380382
return retval;
381383
}
382384

‎Modules/sha256module.c‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,9 @@ SHA256_hexdigest(SHAobject *self, PyObject *unused)
466466
c = (digest[i] & 0xf);
467467
hex_digest[j++] = Py_hexdigits[c];
468468
}
469+
#ifdef Py_DEBUG
469470
assert(_PyUnicode_CheckConsistency(retval, 1));
471+
#endif
470472
return retval;
471473
}
472474

‎Modules/sha512module.c‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,9 @@ SHA512_hexdigest(SHAobject *self, PyObject *unused)
532532
c = (digest[i] & 0xf);
533533
hex_digest[j++] = Py_hexdigits[c];
534534
}
535+
#ifdef Py_DEBUG
535536
assert(_PyUnicode_CheckConsistency(retval, 1));
537+
#endif
536538
return retval;
537539
}
538540

0 commit comments

Comments
 (0)