Skip to content

Error in diff2(x, differences = diff) : names() applied to a non-vector #258

Open
@HenrikBengtsson

Description

@HenrikBengtsson

See ccagc/QDNAseq#123, which reports on:

  Error in diff2(x, differences = diff) : names() applied to a non-vector
  Calls: plot -> plot -> .local -> apply -> FUN -> sdDiff -> diff2

That error message is produced in checkNames(SEXP x, SEXP s) at:

https://github.com/wch/r-source/blob/b046c0c5273ffb44037a0fde606d203ab773bca1/src/main/attrib.c#L416

The only place where I see checkNames() being called is from namesgets(SEXP vec, SEXP val) at:

https://github.com/wch/r-source/blob/b046c0c5273ffb44037a0fde606d203ab773bca1/src/main/attrib.c#L994

We call diff2() -> setNamesDiff() -> namesgets() in:

namesgets(vec, ansNames);

However, I fail to see how we can reach the statement that generates the error message. It could be that there is a memory leak that causes it to happen, as reported in ccagc/QDNAseq#123 (comment);

  *** caught segfault ***
  address (nil), cause 'unknown'
  
  Traceback:
   1: diff2(x, differences = diff)
   2: sdDiff(x, ..., trim = trim)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions