![]() When the underlying value of an interface does not fit in a pointer, a pointer to the value was correctly inserted in the heap. However, the receiving method still assumed it got the underlying value instead of a pointer to it leading to a crash. This commit inserts wrapper functions for method calls on interfaces. The bug wasn't obvious as on a 64-bit system, the underlying value was almost always put directly in the interface. However, it led to a crash on the AVR platform where pointer are (usually) just 16 bits making it far more likely that underlying values cannot be directly stored in an interface. |
||
---|---|---|
.. | ||
coroutines.go | ||
coroutines.txt | ||
float.go | ||
float.txt | ||
interface.go | ||
interface.txt | ||
print.go | ||
print.txt | ||
structexpand.go | ||
structexpand.txt |