[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] Reproducible segfault with Squeak (Issue #601)

Max Leske notifications at github.com
Sat Oct 30 14:33:00 UTC 2021


Found it! I was accidentally writing a class as the method class literal into a compiled method. This is usually an association (or `ClassBinding`). This explains the segfault upon `super` send.

The reason this only showed up in trunk is that i had a correct `Environment>>associationAt:ifAbsent:` but not for `#bindingOf:ifAbsent:`, which, in trunk, is the new message send in `Class>>binding`.

I'm closing this issue. Here's an MWE in case you want to do something with the segfault:

```smalltalk
| class method |
Object subclass: #Foo
	instanceVariableNames: 'env'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Bar'.

class := Smalltalk at: #Foo.
class compile: 'printString super prinstString'.

method := (Smalltalk at: #Foo) compiledMethodAt: #printString.
method
	literalAt: method numLiterals
	put: class.
	
class new printString
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/601#issuecomment-955243152
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20211030/fb22aa06/attachment.html>


More information about the Vm-dev mailing list