[Patch] crashes on amd64
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Fractal Fr0st |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
RenderStats wasn't filled in, but ctypes didn't complain. On AMD64 architectures, the alignment is such that the pointer returned by ctypes plus the offset to the 'render_seconds' field sat on top of some other Python object on the heap. When the render time exceeded 0 seconds, a positive value would be written to the field, sending the GC into a tailspin.
Neat.
=== modified file 'fr0stlib/
--- fr0stlib/
+++ fr0stlib/
@@ -51,7 +51,11 @@
class BaseImageCommen
-class RenderStats(
+class RenderStats(
+ _fields_ = [ ('badvals', c_double)
+ , ('num_iters', c_long)
+ , ('render_seconds', c_int)
+ ]
class ImageStore(
Changed in fr0st: | |
status: | New → Fix Released |