The R Project SVN R

Rev

Rev 77354 | Rev 77358 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 77354 Rev 77355
Line 529... Line 529...
529
	const char *p = getenv("_R_CHECK_DOTCODE_RETVAL_");
529
	const char *p = getenv("_R_CHECK_DOTCODE_RETVAL_");
530
	if (p != NULL && StringTrue(p))
530
	if (p != NULL && StringTrue(p))
531
	    check = TRUE;
531
	    check = TRUE;
532
    }
532
    }
533
 
533
 
534
    if (check) {
-
 
535
	if (val == NULL)
-
 
536
	    errorcall(call, "NULL return value");
-
 
537
	else if (val < (SEXP) 16)
534
    if (check && val < (SEXP) 16)
538
	    errorcall(call, "WEIRD RETURN VALUE");
535
	errorcall(call, "WEIRD RETURN VALUE: %p", val);
539
    }
-
 
540
}
536
}
541
    
537
    
542
SEXP attribute_hidden do_External(SEXP call, SEXP op, SEXP args, SEXP env)
538
SEXP attribute_hidden do_External(SEXP call, SEXP op, SEXP args, SEXP env)
543
{
539
{
544
    DL_FUNC ofun = NULL;
540
    DL_FUNC ofun = NULL;
Line 1234... Line 1230...
1234
	    cargs[60], cargs[61], cargs[62], cargs[63], cargs[64]);
1230
	    cargs[60], cargs[61], cargs[62], cargs[63], cargs[64]);
1235
	break;
1231
	break;
1236
    default:
1232
    default:
1237
	errorcall(call, _("too many arguments, sorry"));
1233
	errorcall(call, _("too many arguments, sorry"));
1238
    }
1234
    }
-
 
1235
    check_retval(call, retval);
1239
    return retval;
1236
    return retval;
1240
}
1237
}
1241
 
1238
 
1242
/* .Call(name, <args>) */
1239
/* .Call(name, <args>) */
1243
SEXP attribute_hidden do_dotcall(SEXP call, SEXP op, SEXP args, SEXP env)
1240
SEXP attribute_hidden do_dotcall(SEXP call, SEXP op, SEXP args, SEXP env)
Line 1307... Line 1304...
1307
	    R_Suicide("compiler constants were modified (in .Call?)!\n");
1304
	    R_Suicide("compiler constants were modified (in .Call?)!\n");
1308
	}
1305
	}
1309
	UNPROTECT(nargs + 1);
1306
	UNPROTECT(nargs + 1);
1310
    }
1307
    }
1311
    vmaxset(vmax);
1308
    vmaxset(vmax);
1312
    check_retval(call, retval);
-
 
1313
    return retval;
1309
    return retval;
1314
}
1310
}
1315
 
1311
 
1316
/*  Call dynamically loaded "internal" graphics functions
1312
/*  Call dynamically loaded "internal" graphics functions
1317
    .External.graphics (used in graphics) and  .Call.graphics (used in grid).
1313
    .External.graphics (used in graphics) and  .Call.graphics (used in grid).