Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions pkgs/development/r-modules/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2157,6 +2157,10 @@ let
];
});

CNEr = old.CNEr.overrideAttrs (attrs: {
patches = [ ./patches/CNEr.patch ];
});

covidsymptom = old.covidsymptom.overrideAttrs (attrs: {
preConfigure = "rm R/covidsymptomdata.R";
});
Expand Down
48 changes: 48 additions & 0 deletions pkgs/development/r-modules/patches/CNEr.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
diff --git a/src/ucsc/common.c b/src/ucsc/common.c
index a3fc893..e4198d3 100644
--- a/src/ucsc/common.c
+++ b/src/ucsc/common.c
@@ -341,7 +341,7 @@ if (count > 1)
}
}

-void slUniqify(void *pList, int (*compare )(const void *elem1, const void *elem2), void (*free)())
+void slUniqify(void *pList, int (*compare )(const void *elem1, const void *elem2), void (*freeFunc)())
/* Return sorted list with duplicates removed.
* Compare should be same type of function as slSort's compare (taking
* pointers to pointers to elements. Free should take a simple
@@ -356,7 +356,7 @@ while ((el = slPopHead(&oldList)) != NULL)
{
if ((newList == NULL) || (compare(&newList, &el) != 0))
slAddHead(&newList, el);
- else if (free != NULL)
+ else if (freeFunc != NULL)
free(el);
Comment on lines +10 to +20
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the comment says

Free should take a simple pointer to dispose of duplicate element

...this should be void (*freeFunc)(void *) and freeFunc(el).

}
slReverse(&newList);
diff --git a/src/ucsc/hash.c b/src/ucsc/hash.c
index 320b360..6ed9c70 100644
--- a/src/ucsc/hash.c
+++ b/src/ucsc/hash.c
@@ -611,7 +611,7 @@ if ((hash = *pHash) != NULL)
}
}

-void hashFreeWithVals(struct hash **pHash, void (freeFunc)())
+void hashFreeWithVals(struct hash **pHash, void (*freeFunc)(void **))
/* Free up hash table and all values associated with it. freeFunc is a
* function to free an entry, should take a pointer to a pointer to an
* entry. */
diff --git a/src/ucsc/hash.h b/src/ucsc/hash.h
index a7fc017..0d06bb9 100644
--- a/src/ucsc/hash.h
+++ b/src/ucsc/hash.h
@@ -244,7 +244,7 @@ void freeHashAndVals(struct hash **pHash);
/* Free up hash table and all values associated with it.
* (Just calls freeMem on each hel->val) */

-void hashFreeWithVals(struct hash **pHash, void (freeFunc)());
+void hashFreeWithVals(struct hash **pHash, void (*freeFunc)(void **));
/* Free up hash table and all values associated with it. freeFunc is a
* function to free an entry, should take a pointer to a pointer to an
* entry. */
Loading