fixed: tried to free mapped buffer, unmap if mapped, free otherwise,
authorJohn Tsiombikas <nuclear@member.fsf.org>
Mon, 25 Nov 2019 14:59:27 +0000 (16:59 +0200)
committerJohn Tsiombikas <nuclear@member.fsf.org>
Mon, 25 Nov 2019 14:59:27 +0000 (16:59 +0200)
also close the file

libvisor/src/visor.c

index 86d508b..2c93521 100644 (file)
@@ -215,8 +215,16 @@ int vi_delete_buf(struct visor *vi, struct vi_buffer *vb)
                return -1;
        }
 
                return -1;
        }
 
+       if(vb->fp) {
+               if(vb->file_mapped) {
+                       vi_unmap(vb->fp);
+               } else {
+                       vi_free(vb->orig);
+               }
+               vi_close(vb->fp);
+       }
+
        vi_free(vb->path);
        vi_free(vb->path);
-       vi_free(vb->orig);
        vi_free(vb->add);
        vi_free(vb->spans);
        return 0;
        vi_free(vb->add);
        vi_free(vb->spans);
        return 0;