The R Project SVN R

Rev

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

Rev 72834 Rev 72835
Line 434... Line 434...
434
 
434
 
435
    if (isObject(x) &&
435
    if (isObject(x) &&
436
       DispatchOrEval(call, op, "length", args, rho, &ans, 0, 1)) {
436
       DispatchOrEval(call, op, "length", args, rho, &ans, 0, 1)) {
437
	if (length(ans) == 1 && TYPEOF(ans) == REALSXP) {
437
	if (length(ans) == 1 && TYPEOF(ans) == REALSXP) {
438
	    double d = REAL(ans)[0];
438
	    double d = REAL(ans)[0];
439
	    if (R_FINITE(d) && d >= 0. && d <= INT_MAX && floor(d) == d)
439
	    if (R_FINITE(d) && d >= 0. && d <= INT_MAX && floor(d) == d) {
-
 
440
                PROTECT(ans);
440
		return coerceVector(ans, INTSXP);
441
                ans = coerceVector(ans, INTSXP);
-
 
442
                UNPROTECT(1);
-
 
443
                return(ans);
-
 
444
            }
441
	}
445
	}
442
	return(ans);
446
	return(ans);
443
    }
447
    }
444
 
448
 
445
 
449