Skip to content

Commit 22a8229

Browse files
committed
add safety for class reset
1 parent ed848a2 commit 22a8229

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

R/as.data.table.R

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,9 @@ as.data.table.list = function(x,
216216
as.data.table.data.frame = function(x, keep.rownames=FALSE, key=NULL, ...) {
217217
if (is.data.table(x)) return(as.data.table.data.table(x, key=key)) # S3 is weird, #6739. Also # nocov; this is tested in 2302.{2,3}, not sure why it doesn't show up in coverage.
218218
if (!identical(class(x), "data.frame")) {
219+
class_orig = class(x)
219220
x = as.data.frame(x)
220-
setattr(x, "class", "data.frame") # cater for cases when as.data.frame can generate a loop #6874
221+
if (identical(class(x), class_orig)) setattr(x, "class", "data.frame") # cater for cases when as.data.frame can generate a loop #6874
221222
return(as.data.table(x, keep.rownames=keep.rownames, key=key, ...))
222223
}
223224
if (!isFALSE(keep.rownames)) {

0 commit comments

Comments
 (0)