MTNSVR *getinfo() { MTNSVR *s; MTNSVR *members = NULL; MTNSVR *svrlist = NULL; svrlist = mtn_info(mtn); for(s=svrlist;s;s=s->next){ if(is_export(s)){ members = pushsvr(members, s); } } clrsvr(svrlist); return(members); }
static int checkfunc(void *ptr, void *arg) { Symbol *s = ptr; if (s->stype == SUndefined) { lex_error_message("%s is still undefined\n", s->name); *(int *) arg = 1; } if (!s->flags.used) { if (s->flags.external) { lex_error_message("external symbol %s is no used\n", s->name); *(int *) arg = 1; } else if (s->stype == Stype && !is_export(s->name)) { lex_error_message("%s is still unused (not referenced internally or exported)\n", s->name); *(int *) arg = 1; } } return 0; }
Eterm erl_is_function(Process* p, Eterm arg1, Eterm arg2) { Sint arity; /* * Verify argument 2 (arity); arity must be >= 0. */ if (is_small(arg2)) { arity = signed_val(arg2); if (arity < 0) { error: BIF_ERROR(p, BADARG); } } else if (is_big(arg2) && !bignum_header_is_neg(*big_val(arg2))) { /* A positive bignum is OK, but can't possibly match. */ arity = -1; } else { /* Everything else (including negative bignum) is an error. */ goto error; } if (is_fun(arg1)) { ErlFunThing* funp = (ErlFunThing *) fun_val(arg1); if (funp->arity == (Uint) arity) { BIF_RET(am_true); } } else if (is_export(arg1)) { Export* exp = (Export *) (export_val(arg1)[1]); if (exp->info.mfa.arity == (Uint) arity) { BIF_RET(am_true); } } BIF_RET(am_false); }