From 599c6a15327fc2d357085d554536ff6fd344876d Mon Sep 17 00:00:00 2001 From: Kresten Krab Thorup Date: Sun, 6 Oct 2013 09:15:05 +0200 Subject: [PATCH] Make sure to throw {badfun, Term} correctly --- src/main/java/erjang/ERT.java | 6 +++++- src/main/java/erjang/m/erlang/ErlBif.java | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/erjang/ERT.java b/src/main/java/erjang/ERT.java index 9efb127a..df1fec44 100644 --- a/src/main/java/erjang/ERT.java +++ b/src/main/java/erjang/ERT.java @@ -130,6 +130,10 @@ public static ErlangError badarith(BigInteger o1, EObject o2) { throw new ErlangError(AM_BADARITH, NIL.cons(o2).cons(o1)); } + public static ErlangError badfun(EObject o) { + throw new ErlangError(new ETuple2(am_badfun, o)); + } + public static final EAtom TRUE = EAtom.intern("true"); public static final EAtom FALSE = EAtom.intern("false"); @@ -355,7 +359,7 @@ public static void test_fun(EObject orig, EFun fun) { if ((orig.testFunction()) != null) { throw new ErlangError(new ETuple2(am_badarity, new ETuple2(orig, NIL))); } else { - throw new ErlangError(am_badfun, orig); + throw badfun(orig); } } } diff --git a/src/main/java/erjang/m/erlang/ErlBif.java b/src/main/java/erjang/m/erlang/ErlBif.java index 8cf17c65..ddd262d1 100644 --- a/src/main/java/erjang/m/erlang/ErlBif.java +++ b/src/main/java/erjang/m/erlang/ErlBif.java @@ -113,7 +113,7 @@ static EObject apply(EProc proc, EObject fun, EObject args) throws Pausable { ETuple t = fun.testTuple(); if (t == null) { - throw ERT.badarg(fun,args); + throw ERT.badfun(fun); } ETuple2 t2 = ETuple2.cast(t);