xiaoxiang781216 commented on code in PR #7776:
URL: https://github.com/apache/nuttx/pull/7776#discussion_r1043167937


##########
drivers/video/video_framebuff.c:
##########
@@ -114,34 +95,27 @@ void video_framebuff_uninit(video_framebuff_t *fbuf)
 
 int video_framebuff_realloc_container(video_framebuff_t *fbuf, int sz)
 {
-  if (fbuf->vbuf_alloced == NULL || fbuf->container_size != sz)
-    {
-      if (fbuf->container_size != sz)
-        {
-          if (fbuf->vbuf_alloced != NULL)
-            {
-              kmm_free(fbuf->vbuf_alloced);
-            }
+  vbuf_container_t *vbuf;
 
-          fbuf->vbuf_alloced   = NULL;
-          fbuf->container_size = 0;
-        }
-
-      if (sz > 0)
-        {
-          fbuf->vbuf_alloced
-           = (vbuf_container_t *)kmm_malloc(sizeof(vbuf_container_t)*sz);
-          if (fbuf->vbuf_alloced == NULL)
-            {
-              return -ENOMEM;
-            }
-        }
+  if (fbuf->container_size == sz)
+    {
+      return OK;
+    }
 
-      fbuf->container_size = sz;
+  vbuf = kmm_realloc(fbuf->vbuf_alloced, sizeof(vbuf_container_t) * sz);

Review Comment:
   Zero mean free and return null pointer which is the standard behavior 
required by realloc:
   https://github.com/apache/nuttx/blob/master/mm/mm_heap/mm_realloc.c#L85-L89
   This is also the reason why the following code check sz != 0 before return 
-ENOMEM:
   
https://github.com/apache/nuttx/pull/7776/files#diff-ce724983e0699b4ea65c8509598f6b6d31e824418383f5efb12a279cb932d8f1R110-R113



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to