aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2012-01-31 08:08:13 +0100
committerBjörn Gustavsson <[email protected]>2012-02-01 16:10:54 +0100
commit741eb5821beba958eafba23f11b1f115f63dd75e (patch)
treefa5d538e8a99c6dd2a334333c88e074bcd63b2d9
parent0e476410666e3dfeb7e93289ff235e2b1232e5ee (diff)
downloadotp-741eb5821beba958eafba23f11b1f115f63dd75e.tar.gz
otp-741eb5821beba958eafba23f11b1f115f63dd75e.tar.bz2
otp-741eb5821beba958eafba23f11b1f115f63dd75e.zip
beam_bp: Fix faulty assertion in erts_find_local_func()
Commit 64ccd8c9b7a782ca777ca4649dbb1f4a1ef00bce introduced BIF stubs. The stub functions were not actually remove the loaded code, but the name of the function in the func_info instruction was changed to [] to mark it as invalid.
-rw-r--r--erts/emulator/beam/beam_bp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/erts/emulator/beam/beam_bp.c b/erts/emulator/beam/beam_bp.c
index dd13cd179a..53f283ba39 100644
--- a/erts/emulator/beam/beam_bp.c
+++ b/erts/emulator/beam/beam_bp.c
@@ -486,7 +486,8 @@ erts_find_local_func(Eterm mfa[3]) {
for (i = 0; i < n; ++i) {
code_ptr = code_base[MI_FUNCTIONS+i];
ASSERT(((BeamInstr) BeamOp(op_i_func_info_IaaI)) == code_ptr[0]);
- ASSERT(mfa[0] == ((Eterm) code_ptr[2]));
+ ASSERT(mfa[0] == ((Eterm) code_ptr[2]) ||
+ is_nil((Eterm) code_ptr[2]));
if (mfa[1] == ((Eterm) code_ptr[3]) &&
((BeamInstr) mfa[2]) == code_ptr[4]) {
return code_ptr + 5;