Repository: lucy-clownfish Updated Branches: refs/heads/0.4 09a5e3d99 -> 867a58cdd
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/867a58cd Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/867a58cd Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/867a58cd Branch: refs/heads/0.4 Commit: 867a58cdd066b611d0c07d4a6f4a64b938ba833d Parents: 09a5e3d Author: Nick Wellnhofer <[email protected]> Authored: Sat Dec 6 10:05:59 2014 +0100 Committer: Nick Wellnhofer <[email protected]> Committed: Sat Dec 6 10:11:01 2014 +0100 ---------------------------------------------------------------------- compiler/src/CFCHierarchy.c | 10 ++++++++++ 1 file changed, 10 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/867a58cd/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);
