Commit 0d10a9be authored by Alessio Stalla's avatar Alessio Stalla

Refined serialization of local functions and closures (still doesn't work for compiled closures)

parent 18aa17ce
......@@ -4,5 +4,8 @@ abcl
abcl-test*log
ext
scratch
.idea/
*.iml
target/
\#*\#
\.\#*
......@@ -805,7 +805,7 @@ public class ArgumentListProcessor implements Serializable {
* - KeywordParam
* - AuxParam
* */
public static abstract class Param {
public static abstract class Param implements Serializable {
/** Assigns values to be bound to the correcsponding variables to the
* array, using 'index' as the next free slot, consuming any required
......
......@@ -36,6 +36,7 @@ package org.armedbear.lisp;
import static org.armedbear.lisp.Lisp.*;
import java.io.Serializable;
import java.math.BigInteger;
import java.util.ArrayList;
import org.armedbear.lisp.util.Finalizer;
......@@ -3719,6 +3720,8 @@ public final class Primitives {
};
// ### block
private static class BlockMarker extends LispObject implements Serializable {}
private static final SpecialOperator BLOCK = new sf_block();
private static final class sf_block extends SpecialOperator {
sf_block() {
......@@ -3735,7 +3738,7 @@ public final class Primitives {
tag = checkSymbol(args.car());
LispObject body = ((Cons)args).cdr();
Environment ext = new Environment(env);
final LispObject block = new LispObject();
final LispObject block = new BlockMarker();
ext.addBlock(tag, block);
LispObject result = NIL;
final LispThread thread = LispThread.currentThread();
......
Markdown is supported
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