Skip to content

Instantly share code, notes, and snippets.

@peteruhnak
Last active September 29, 2016 08:05
Show Gist options
  • Save peteruhnak/819a09cbd88d47f520143d1aaa592508 to your computer and use it in GitHub Desktop.
Save peteruhnak/819a09cbd88d47f520143d1aaa592508 to your computer and use it in GitHub Desktop.

lockSurfaces.st#L68

sourceHandle := interpreterProxy fetchInteger: FormBitsIndex ofObject: sourceForm.

The above returns 0 just before the crash; the surface was NOT GCed however.

sourceForm was retrieved from here loadBitBltFrom.warping..st

sourceForm := interpreterProxy fetchPointer: BBSourceFormIndex ofObject: bitBltOop.

Where bitBltOop is from primitiveCopyBits (rcvr is bitBltOop):

rcvr := interpreterProxy stackValue: interpreterProxy methodArgumentCount.
(self loadBitBltFrom: rcvr)  ifFalse:[^interpreterProxy primitiveFail].

lockSurfaces() was called from copyBits.st

and copyBits() from primitiveCopyBits.st

primitiveCopyBits() is called from image-side (BitBlt>>copyBits)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment