The R Project SVN R

Rev

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

Rev 2506 Rev 2715
Line 206... Line 206...
206
	    int havenames = 0;
206
	    int havenames = 0;
207
	    for (i = 0; i < ndims; i++)
207
	    for (i = 0; i < ndims; i++)
208
		if (INTEGER(dims)[i] != 1 && VECTOR(dimnames)[i] != R_NilValue)
208
		if (INTEGER(dims)[i] != 1 && VECTOR(dimnames)[i] != R_NilValue)
209
		    havenames = 1;
209
		    havenames = 1;
210
	    if (havenames) {
210
	    if (havenames) {
211
		newnames = allocVector(VECSXP, n);
211
		PROTECT(newnames = allocVector(VECSXP, n));
212
		for (i = 0, n= 0; i < ndims; i++) {
212
		for (i = 0, n= 0; i < ndims; i++) {
213
		    if (INTEGER(dims)[i] != 1)
213
		    if (INTEGER(dims)[i] != 1)
214
			VECTOR(newnames)[n++] = VECTOR(dimnames)[i];
214
			VECTOR(newnames)[n++] = VECTOR(dimnames)[i];
215
		}
215
		}
216
	    }
216
	    }
Line 218... Line 218...
218
	}
218
	}
219
	PROTECT(dimnames);
219
	PROTECT(dimnames);
220
	setAttrib(x, R_DimNamesSymbol, R_NilValue);
220
	setAttrib(x, R_DimNamesSymbol, R_NilValue);
221
	setAttrib(x, R_DimSymbol, newdims);
221
	setAttrib(x, R_DimSymbol, newdims);
222
	if (dimnames != R_NilValue)
222
	if (dimnames != R_NilValue)
-
 
223
	{
223
	    setAttrib(x, R_DimNamesSymbol, newnames);
224
	    setAttrib(x, R_DimNamesSymbol, newnames);
-
 
225
	    UNPROTECT(1);
-
 
226
	}
224
	UNPROTECT(2);
227
	UNPROTECT(2);
225
    }
228
    }
226
    UNPROTECT(1);
229
    UNPROTECT(1);
227
    return x;
230
    return x;
228
}
231
}