Commit ae831b00 authored by rschlatte@1c010e3e-69d0-11dd-93a8-456734b0d56f's avatar rschlatte@1c010e3e-69d0-11dd-93a8-456734b0d56f
Browse files

Update instance layout in (set-)standard-instance-access if necessary.

- Reported by Pascal Costanza
parent f0b44db8
...@@ -428,6 +428,10 @@ public class StandardObject extends LispObject ...@@ -428,6 +428,10 @@ public class StandardObject extends LispObject
public LispObject execute(LispObject first, LispObject second) public LispObject execute(LispObject first, LispObject second)
{ {
final StandardObject instance = checkStandardObject(first); final StandardObject instance = checkStandardObject(first);
if (instance.layout.isInvalid()) {
// Update instance.
instance.updateLayout();
}
final int index; final int index;
if (second instanceof Fixnum) { if (second instanceof Fixnum) {
index = ((Fixnum)second).value; index = ((Fixnum)second).value;
...@@ -473,6 +477,10 @@ public class StandardObject extends LispObject ...@@ -473,6 +477,10 @@ public class StandardObject extends LispObject
LispObject third) LispObject third)
{ {
final StandardObject instance = checkStandardObject(first); final StandardObject instance = checkStandardObject(first);
if (instance.layout.isInvalid()) {
// Update instance.
instance.updateLayout();
}
final int index; final int index;
if (second instanceof Fixnum) { if (second instanceof Fixnum) {
index = ((Fixnum)second).value; index = ((Fixnum)second).value;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment