comparison bindings/sb-alien/interface.lisp @ 647:7e7ba87b5466

Fix stack-zeroing bug in sb-alien query bindings When doing a key query, we have to be absolutely sure that the datum.data slot is NULL, otherwise Bad Things will happen. Fixes audioDB Trac ticket #35
author mas01cr
date Tue, 13 Oct 2009 14:26:30 +0000
parents 368c8c72e723
children a35ca2d5f238
comparison
equal deleted inserted replaced
646:368c8c72e723 647:7e7ba87b5466
310 (when (logbitp 0 (slot (slot qspec 'refine) 'flags)) 310 (when (logbitp 0 (slot (slot qspec 'refine) 'flags))
311 (free-alien (slot (slot (slot qspec 'refine) 'include) 'keys))) 311 (free-alien (slot (slot (slot qspec 'refine) 'include) 'keys)))
312 (when (logbitp 1 (slot (slot qspec 'refine) 'flags)) 312 (when (logbitp 1 (slot (slot qspec 'refine) 'flags))
313 (free-alien (slot (slot (slot qspec 'refine) 'exclude) 'keys))) 313 (free-alien (slot (slot (slot qspec 'refine) 'exclude) 'keys)))
314 (free-alien qspec))))))) 314 (free-alien qspec)))))))
315 (def query string (setf (slot qdatum 'key) datum)) 315 (def query string (setf (slot qdatum 'key) datum
316 (slot qdatum 'data) nil))
316 (def query datum 317 (def query datum
317 (setf (slot qdatum 'key) (datum-key datum)) 318 (setf (slot qdatum 'key) (datum-key datum))
318 (setf (slot qdatum 'dim) (array-dimension (datum-data datum) 1)) 319 (setf (slot qdatum 'dim) (array-dimension (datum-data datum) 1))
319 (setf (slot qdatum 'nvectors) (array-dimension (datum-data datum) 0)) 320 (setf (slot qdatum 'nvectors) (array-dimension (datum-data datum) 0))
320 (setf (slot qdatum 'data) (sb-sys:vector-sap (sb-ext:array-storage-vector (datum-data datum)))) 321 (setf (slot qdatum 'data) (sb-sys:vector-sap (sb-ext:array-storage-vector (datum-data datum))))