Optimize CFCClass_fresh_methods
Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/a761adcb Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/a761adcb Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/a761adcb Branch: refs/heads/markdown_v2 Commit: a761adcb5a906014964cdaa6d2feda738b0068dc Parents: 2aeb8db Author: Nick Wellnhofer <[email protected]> Authored: Wed Dec 3 19:24:21 2014 +0100 Committer: Nick Wellnhofer <[email protected]> Committed: Wed Dec 3 19:24:21 2014 +0100 ---------------------------------------------------------------------- compiler/src/CFCBindClass.c | 4 ---- compiler/src/CFCC.c | 2 -- compiler/src/CFCCHtml.c | 2 -- compiler/src/CFCCMan.c | 2 -- compiler/src/CFCClass.c | 3 +-- compiler/src/CFCClass.h | 2 ++ compiler/src/CFCPerl.c | 1 - compiler/src/CFCPerlClass.c | 3 --- compiler/src/CFCTestClass.c | 4 +--- 9 files changed, 4 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/a761adcb/compiler/src/CFCBindClass.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCBindClass.c b/compiler/src/CFCBindClass.c index 5f2ef24..cb8a1db 100644 --- a/compiler/src/CFCBindClass.c +++ b/compiler/src/CFCBindClass.c @@ -587,8 +587,6 @@ CFCBindClass_callback_decs(CFCBindClass *self) { } } - FREEMEM(fresh_methods); - return cb_decs; } @@ -643,7 +641,6 @@ S_sub_declarations(CFCBindClass *self) { declarations = CFCUtil_cat(declarations, dec, "\n\n", NULL); FREEMEM(dec); } - FREEMEM(fresh_methods); return declarations; } @@ -723,7 +720,6 @@ S_short_names(CFCBindClass *self) { short_names = CFCUtil_cat(short_names, " #define ", short_imp, " ", full_imp, "\n", NULL); } - FREEMEM(fresh_methods); CFCMethod **methods = CFCClass_methods(client); for (int i = 0; methods[i] != NULL; i++) { http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/a761adcb/compiler/src/CFCC.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCC.c b/compiler/src/CFCC.c index 96408d6..cf9a4cf 100644 --- a/compiler/src/CFCC.c +++ b/compiler/src/CFCC.c @@ -143,8 +143,6 @@ S_callback_decs(CFCClass *klass) { } } - FREEMEM(fresh_methods); - return cb_decs; } http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/a761adcb/compiler/src/CFCCHtml.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCCHtml.c b/compiler/src/CFCCHtml.c index da02942..76b8109 100644 --- a/compiler/src/CFCCHtml.c +++ b/compiler/src/CFCCHtml.c @@ -546,7 +546,6 @@ S_html_create_methods(CFCClass *klass) { } FREEMEM(methods_html); - FREEMEM(fresh_methods); return result; } @@ -598,7 +597,6 @@ S_html_create_fresh_methods(CFCClass *klass, CFCClass *invoker) { result = CFCUtil_cat(result, "</dl>\n", NULL); } - FREEMEM(fresh_methods); return result; } http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/a761adcb/compiler/src/CFCCMan.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCCMan.c b/compiler/src/CFCCMan.c index 650eab5..e559d6b 100644 --- a/compiler/src/CFCCMan.c +++ b/compiler/src/CFCCMan.c @@ -250,7 +250,6 @@ S_man_create_methods(CFCClass *klass) { FREEMEM(methods_man); FREEMEM(novel_man); - FREEMEM(fresh_methods); return result; } @@ -280,7 +279,6 @@ S_man_create_inherited_methods(CFCClass *klass) { FREEMEM(full_method_sym); } - FREEMEM(fresh_methods); return result; } http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/a761adcb/compiler/src/CFCClass.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCClass.c b/compiler/src/CFCClass.c index 10f4e92..b0a47c8 100644 --- a/compiler/src/CFCClass.c +++ b/compiler/src/CFCClass.c @@ -667,8 +667,7 @@ S_fresh_syms(CFCClass *self, CFCSymbol **syms) { CFCMethod** CFCClass_fresh_methods(CFCClass *self) { - // TODO: Return self->fresh_methods - return (CFCMethod**)S_fresh_syms(self, (CFCSymbol**)self->methods); + return self->fresh_methods; } CFCVariable** http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/a761adcb/compiler/src/CFCClass.h ---------------------------------------------------------------------- diff --git a/compiler/src/CFCClass.h b/compiler/src/CFCClass.h index 8d7f4d8..5d0701c 100644 --- a/compiler/src/CFCClass.h +++ b/compiler/src/CFCClass.h @@ -158,11 +158,13 @@ CFCClass** CFCClass_tree_to_ladder(CFCClass *self); /** Return an array of all methods implemented in this class. + * Must not be freed by the caller. */ struct CFCMethod** CFCClass_fresh_methods(CFCClass *self); /** Return an array of all member variables declared in this class. + * Must be freed by the caller. */ struct CFCVariable** CFCClass_fresh_member_vars(CFCClass *self); http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/a761adcb/compiler/src/CFCPerl.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCPerl.c b/compiler/src/CFCPerl.c index a04bb61..6637dee 100644 --- a/compiler/src/CFCPerl.c +++ b/compiler/src/CFCPerl.c @@ -610,7 +610,6 @@ S_write_callbacks_c(CFCPerl *self) { FREEMEM(cb_def); } } - FREEMEM(fresh_methods); } content = CFCUtil_cat(content, self->c_footer, NULL); http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/a761adcb/compiler/src/CFCPerlClass.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCPerlClass.c b/compiler/src/CFCPerlClass.c index bb8e4de..782f719 100644 --- a/compiler/src/CFCPerlClass.c +++ b/compiler/src/CFCPerlClass.c @@ -264,8 +264,6 @@ CFCPerlClass_method_bindings(CFCClass *klass) { bound[num_bound] = NULL; } - FREEMEM(fresh_methods); - return bound; } @@ -515,7 +513,6 @@ CFCPerlClass_method_metadata_code(CFCPerlClass *self) { } } - FREEMEM(fresh_methods); return code; } http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/a761adcb/compiler/src/CFCTestClass.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCTestClass.c b/compiler/src/CFCTestClass.c index a4e5ddc..1bdc5e4 100644 --- a/compiler/src/CFCTestClass.c +++ b/compiler/src/CFCTestClass.c @@ -169,7 +169,6 @@ S_run_tests(CFCTest *test) { OK(test, fresh_member_vars[0] == thing, "fresh_member_vars[0]"); OK(test, fresh_member_vars[1] == NULL, "fresh_member_vars[1]"); - FREEMEM(fresh_methods); FREEMEM(fresh_member_vars); } @@ -193,7 +192,6 @@ S_run_tests(CFCTest *test) { { CFCMethod **fresh_methods = CFCClass_fresh_methods(final_foo); OK(test, fresh_methods[0] == NULL, "fresh_methods[0]"); - FREEMEM(fresh_methods); } { @@ -279,7 +277,7 @@ S_run_tests(CFCTest *test) { CFCSymbol **inert_vars = (CFCSymbol**)CFCClass_inert_vars(klass); CFCSymbol **member_vars = (CFCSymbol**)CFCClass_member_vars(klass); CFCSymbol **functions = (CFCSymbol**)CFCClass_functions(klass); - CFCSymbol **methods = (CFCSymbol**)CFCClass_methods(klass); + CFCSymbol **methods = (CFCSymbol**)CFCClass_fresh_methods(klass); OK(test, S_has_symbol(inert_vars, "num_dogs"), "parsed inert var"); OK(test, S_has_symbol(inert_vars, "top_dog"), "parsed public inert var"); OK(test, S_has_symbol(member_vars, "mom"), "parsed member var");
