Issue #19741: cleanup tracemalloc_realloc()

Explain that unhandled error case is very unlikely
diff --git a/Modules/_tracemalloc.c b/Modules/_tracemalloc.c
index 22ec5dd..1a782f6 100644
--- a/Modules/_tracemalloc.c
+++ b/Modules/_tracemalloc.c
@@ -563,20 +563,27 @@
     ptr2 = alloc->realloc(alloc->ctx, ptr, new_size);
 
     if (ptr2 != NULL) {
-        if (ptr != NULL)
+        if (ptr != NULL) {
+            /* resize */
             tracemalloc_log_free(ptr);
 
-        if (tracemalloc_log_alloc(ptr2, new_size) < 0) {
-            if (ptr == NULL) {
+            if (tracemalloc_log_alloc(ptr2, new_size) < 0) {
+                /* Memory allocation failed. The error cannot be reported to
+                   the caller, because realloc() may already have shrinked the
+                   memory block and so removed bytes.
+
+                   This case is very unlikely since we just released an hash
+                   entry, so we have enough free bytes to allocate the new
+                   entry. */
+            }
+        }
+        else {
+            /* new allocation */
+            if (tracemalloc_log_alloc(ptr2, new_size) < 0) {
                 /* Memory allocation failed */
                 alloc->free(alloc->ctx, ptr2);
                 ptr2 = NULL;
             }
-            else {
-                /* Memory allocation failed. The error cannot be reported to
-                   the caller, because realloc() may already have shrinked the
-                   memory block and so removed bytes. */
-            }
         }
     }
     set_reentrant(0);