Fix URI resolution for methods inherited from other parcels

Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/35304580
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/35304580
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/35304580

Branch: refs/heads/master
Commit: 35304580521f972ed7d62e432fec95875e7de33f
Parents: a8f14c2
Author: Nick Wellnhofer <wellnho...@aevum.de>
Authored: Mon Feb 13 16:05:28 2017 +0100
Committer: Nick Wellnhofer <wellnho...@aevum.de>
Committed: Fri Feb 17 13:21:53 2017 +0100

----------------------------------------------------------------------
 compiler/src/CFCCHtml.c | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/35304580/compiler/src/CFCCHtml.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCCHtml.c b/compiler/src/CFCCHtml.c
index a70f626..e527c53 100644
--- a/compiler/src/CFCCHtml.c
+++ b/compiler/src/CFCCHtml.c
@@ -147,8 +147,8 @@ static char*
 S_html_create_fresh_methods(CFCClass *klass, CFCClass *ancestor);
 
 static char*
-S_html_create_func(CFCClass *klass, CFCCallable *func, const char *prefix,
-                   const char *short_sym);
+S_html_create_func(CFCClass *klass, CFCClass *doc_class, CFCCallable *func,
+                   const char *prefix, const char *short_sym);
 
 static char*
 S_html_create_param_list(CFCClass *klass, CFCCallable *func);
@@ -668,8 +668,8 @@ S_html_create_functions(CFCClass *klass) {
                              name, "</dt>\n", NULL);
 
         char *short_sym = CFCFunction_short_func_sym(func, klass);
-        char *func_html = S_html_create_func(klass, (CFCCallable*)func, prefix,
-                                             short_sym);
+        char *func_html = S_html_create_func(klass, klass, (CFCCallable*)func,
+                                             prefix, short_sym);
         result = CFCUtil_cat(result, func_html, NULL);
         FREEMEM(func_html);
         FREEMEM(short_sym);
@@ -761,9 +761,10 @@ S_html_create_fresh_methods(CFCClass *klass, CFCClass 
*ancestor) {
         }
         result = CFCUtil_cat(result, "</dt>\n", NULL);
 
-        char       *short_sym = CFCMethod_short_method_sym(method, klass);
-        char *method_html = S_html_create_func(klass, (CFCCallable*)method,
-                                               prefix, short_sym);
+        char *short_sym = CFCMethod_short_method_sym(method, klass);
+        char *method_html
+            = S_html_create_func(klass, ancestor, (CFCCallable*)method, prefix,
+                                 short_sym);
         result = CFCUtil_cat(result, method_html, NULL);
         FREEMEM(method_html);
         FREEMEM(short_sym);
@@ -777,8 +778,8 @@ S_html_create_fresh_methods(CFCClass *klass, CFCClass 
*ancestor) {
 }
 
 static char*
-S_html_create_func(CFCClass *klass, CFCCallable *func, const char *prefix,
-                   const char *short_sym) {
+S_html_create_func(CFCClass *klass, CFCClass *doc_class, CFCCallable *func,
+                   const char *prefix, const char *short_sym) {
     CFCType    *ret_type      = CFCCallable_get_return_type(func);
     char       *ret_html      = S_type_to_html(ret_type, "", klass);
     const char *ret_array     = CFCType_get_array(ret_type);
@@ -817,7 +818,7 @@ S_html_create_func(CFCClass *klass, CFCCallable *func, 
const char *prefix,
     if (docucomment) {
         // Description
         const char *raw_desc = CFCDocuComment_get_description(docucomment);
-        char *desc = S_md_to_html(raw_desc, klass, 0);
+        char *desc = S_md_to_html(raw_desc, doc_class, 0);
         result = CFCUtil_cat(result, desc, NULL);
         FREEMEM(desc);
 
@@ -829,7 +830,7 @@ S_html_create_func(CFCClass *klass, CFCCallable *func, 
const char *prefix,
         if (param_names[0]) {
             result = CFCUtil_cat(result, "<dl>\n", NULL);
             for (size_t i = 0; param_names[i] != NULL; i++) {
-                char *doc = S_md_to_html(param_docs[i], klass, 0);
+                char *doc = S_md_to_html(param_docs[i], doc_class, 0);
                 result = CFCUtil_cat(result, "<dt>", param_names[i],
                                      "</dt>\n<dd>", doc, "</dd>\n",
                                      NULL);
@@ -842,7 +843,7 @@ S_html_create_func(CFCClass *klass, CFCCallable *func, 
const char *prefix,
         const char *retval_doc = CFCDocuComment_get_retval(docucomment);
         if (retval_doc && strlen(retval_doc)) {
             char *md = CFCUtil_sprintf("**Returns:** %s", retval_doc);
-            char *html = S_md_to_html(md, klass, 0);
+            char *html = S_md_to_html(md, doc_class, 0);
             result = CFCUtil_cat(result, html, NULL);
             FREEMEM(html);
             FREEMEM(md);

Reply via email to