fill_number() ensures that the 'digits' string is ready
diff --git a/Python/formatter_unicode.c b/Python/formatter_unicode.c
index 86385f6..52ccafa 100644
--- a/Python/formatter_unicode.c
+++ b/Python/formatter_unicode.c
@@ -587,7 +587,10 @@
     /* Only for type 'c' special case, it has no digits. */
     if (spec->n_digits != 0) {
         /* Fill the digits with InsertThousandsGrouping. */
-        char *pdigits = PyUnicode_DATA(digits);
+        char *pdigits;
+        if (PyUnicode_READY(digits))
+            return -1;
+        pdigits = PyUnicode_DATA(digits);
         if (PyUnicode_KIND(digits) < kind) {
             pdigits = _PyUnicode_AsKind(digits, kind);
             if (pdigits == NULL)