示例#1
0
文件: mtnfile.c 项目: kizkoh/mtnd
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);
}
示例#2
0
文件: symbol.c 项目: aosm/Heimdal
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;
}
示例#3
0
文件: erl_bif_op.c 项目: HansN/otp
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);
}