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


##########
drivers/video/video_framebuff.c:
##########
@@ -114,35 +95,28 @@ 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);
+  if (vbuf != NULL)
+    {
+      memset(vbuf, 0, sizeof(vbuf_container_t) * sz);
+    }
+  else if (sz != 0)
+    {
+      return -ENOMEM;
     }
 
-  cleanup_container(fbuf);
+  fbuf->vbuf_alloced = vbuf;
+  fbuf->container_size = sz;
 
-  return OK;
+  init_buf_chain(fbuf);
+  return ret;

Review Comment:
   ```suggestion
     return OK;
   ```



##########
drivers/video/video_framebuff.c:
##########
@@ -46,24 +46,13 @@ static void init_buf_chain(video_framebuff_t *fbuf)
   fbuf->vbuf_tail  = NULL;
 
   tmp = fbuf->vbuf_alloced;
-  for (i = 0; i < fbuf->container_size - 1; i++)
+  for (i = 1; i < fbuf->container_size; i++)
     {
       tmp->next = &tmp[1];
       tmp++;
     }
 }
 
-static void cleanup_container(video_framebuff_t *fbuf)
-{
-  if (fbuf->vbuf_alloced)
-    {
-      memset(fbuf->vbuf_alloced,
-             0,
-             sizeof(vbuf_container_t)*fbuf->container_size);
-      init_buf_chain(fbuf);
-    }
-}
-
 static inline int is_last_one(video_framebuff_t *fbuf)

Review Comment:
   ```suggestion
   static inline int is_last_one(FAR video_framebuff_t *fbuf)
   ```



##########
drivers/video/video_framebuff.c:
##########
@@ -97,12 +82,8 @@ static inline vbuf_container_t 
*dequeue_vbuf_unsafe(video_framebuff_t *fbuf)
 
 void video_framebuff_init(video_framebuff_t *fbuf)

Review Comment:
   ```suggestion
   void video_framebuff_init(FAR video_framebuff_t *fbuf)
   ```



##########
drivers/video/video_framebuff.c:
##########
@@ -114,35 +95,28 @@ 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;

Review Comment:
   ```suggestion
     FAR vbuf_container_t *vbuf;
   ```



##########
drivers/video/video_framebuff.c:
##########
@@ -114,35 +95,28 @@ 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);
+  if (vbuf != NULL)
+    {
+      memset(vbuf, 0, sizeof(vbuf_container_t) * sz);
+    }
+  else if (sz != 0)
+    {
+      return -ENOMEM;
     }
 
-  cleanup_container(fbuf);
+  fbuf->vbuf_alloced = vbuf;
+  fbuf->container_size = sz;
 
-  return OK;
+  init_buf_chain(fbuf);
+  return ret;
 }
 
 vbuf_container_t *video_framebuff_get_container(video_framebuff_t *fbuf)

Review Comment:
   ```suggestion
   vbuf_container_t *video_framebuff_get_container(FAR video_framebuff_t *fbuf)
   ```



##########
drivers/video/video_framebuff.c:
##########
@@ -114,35 +95,28 @@ void video_framebuff_uninit(video_framebuff_t *fbuf)
 
 int video_framebuff_realloc_container(video_framebuff_t *fbuf, int sz)

Review Comment:
   ```suggestion
   int video_framebuff_realloc_container(FAR video_framebuff_t *fbuf, int sz)
   ```



-- 
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