[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Record Problem



I have code that uses "rect" type records frequently.  That is, I create them
using "make-record" and destroy them using "dispose-record".  I am not using
them just temporarily within a single function, so "rlet" is not an alternative.

My problem is that sometimes when I call "dispose-record", I get the error:
"Can't operate on free block."  As a possible solution to this, I tried:

(with-dereferenced-handles ((r rect))  ;; "rect" is a record of type :rect
  (dispose-rect r :rect))

This reduces the number of times that I get the error, but I still get it
sometimes (rarely).  Also, dispose-rect seems to be unstable if the optional 
":rect" record type specifier is not supplied (i.e. it can crash my machine).

Does anyone know a possible reason for this?

- Paul