[cffi-devel] possible foreign-free bug

Joeish W joeish80829 at yahoo.com
Mon Nov 11 19:29:23 UTC 2013


(defun get-cols-example ()
  (let* ((matrix (create-mat 5 7 +8uc1+))
     (submat (foreign-alloc `(:struct cv-mat)
                :initial-contents '())))
   (get-cols matrix submat 0 3)
    (foreign-free submat)))

when i run the above code with the (get-cols matrix submat 0 3) line 
commented or without foreign-free  it runs fine but as it is above i get below error 


 Error in `/usr/bin/sbcl': free(): invalid next size (fast): 0x00007fffd4000c60 ***

in inferior lisp followed by many lines of code las below. All the 
fuinctions in the defun above are neccessary to reproduce issue:

======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x80996)[0x7ffff7154996]
[0x100681f7b8]
======= Memory map: ========
00400000-00435000 r-xp 00000000 08:03 135423                             /usr/bin/sbcl
00635000-00636000 r-xp 00035000 08:03 135423                             /usr/bin/sbcl
00636000-00648000 rwxp 00036000 08:03 135423                             /usr/bin/sbcl

I dont have any foreign-free functions in my  wrappers and the functions 
involved GET-COLS and CREATE-MAT  are wrappers for OpenCV's cvGetCols 
and cvCreateMat...the wrappers are below for debugging purpose

;; CvMat* cvGetCols(const CvArr* arr, CvMat* submat, int start_col, int end_col) 
(defcfun ("cvGetCols" get-cols) (:pointer (:struct cv-mat)) 
  "Returns array column span." 
  (arr cv-arr) 
  (submat (:pointer (:struct cv-mat))) 
  (start-col :int) 
  (end-col :int))


;; CvMat* cvCreateMat(int rows, int cols, int type) 
(defcfun ("cvCreateMat" create-mat) (:pointer (:struct cv-mat)) 
  (rows :int) 
  (cols :int) 
  (type :int)) 

any way i can help debug this i will and any guidance on this issue is much appreciated =)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cffi-devel/attachments/20131111/bc40a1a3/attachment.html>


More information about the cffi-devel mailing list