Repository: lucy-clownfish Updated Branches: refs/heads/master c3aadd5b8 -> 8d8d86b1a
Protect against duplicate source or include dirs Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/8d8d86b1 Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/8d8d86b1 Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/8d8d86b1 Branch: refs/heads/master Commit: 8d8d86b1ae6c83d5dda0ac7ff5ba611c1e4f6717 Parents: c3aadd5 Author: Nick Wellnhofer <[email protected]> Authored: Sat Dec 6 10:05:59 2014 +0100 Committer: Nick Wellnhofer <[email protected]> Committed: Sat Dec 6 10:05:59 2014 +0100 ---------------------------------------------------------------------- compiler/src/CFCHierarchy.c | 10 ++++++++++ 1 file changed, 10 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/8d8d86b1/compiler/src/CFCHierarchy.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCHierarchy.c b/compiler/src/CFCHierarchy.c index dcb8c97..88cdb30 100644 --- a/compiler/src/CFCHierarchy.c +++ b/compiler/src/CFCHierarchy.c @@ -187,6 +187,11 @@ S_do_make_path(const char *path) { void CFCHierarchy_add_source_dir(CFCHierarchy *self, const char *source_dir) { + // Don't add directory twice. + for (size_t i = 0; self->sources[i] != NULL; ++i) { + if (strcmp(self->sources[i], source_dir) == 0) { return; } + } + size_t n = self->num_sources; size_t size = (n + 2) * sizeof(char*); self->sources = (char**)REALLOCATE(self->sources, size); @@ -197,6 +202,11 @@ CFCHierarchy_add_source_dir(CFCHierarchy *self, const char *source_dir) { void CFCHierarchy_add_include_dir(CFCHierarchy *self, const char *include_dir) { + // Don't add directory twice. + for (size_t i = 0; self->includes[i] != NULL; ++i) { + if (strcmp(self->includes[i], include_dir) == 0) { return; } + } + size_t n = self->num_includes; size_t size = (n + 2) * sizeof(char*); self->includes = (char**)REALLOCATE(self->includes, size);
