Changeset: 6ae60fc187d5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6ae60fc187d5
Modified Files:
        monetdb5/mal/mal_module.c
        sql/backends/monet5/sql_gencode.c
Branch: Apr2019
Log Message:

Reverted changes in mal_module and use pointer comparison to find a mal module


diffs (44 lines):

diff --git a/monetdb5/mal/mal_module.c b/monetdb5/mal/mal_module.c
--- a/monetdb5/mal/mal_module.c
+++ b/monetdb5/mal/mal_module.c
@@ -117,7 +117,7 @@ Module getModule(str name) {
        int index = getModuleIndex(name);
        Module m = moduleIndex[index];
        while(m) {
-               if (strcmp(name, m->name) == 0)
+               if (name == m->name)
                        return m;
                m = m->link;
        }
diff --git a/sql/backends/monet5/sql_gencode.c 
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -860,19 +860,19 @@ backend_call(backend *be, Client c, cq *
 int
 monet5_resolve_function(ptr M, sql_func *f)
 {
+       str mname = getName(f->mod), fname = getName(f->imp);
        (void) M;
 
-       for (Module m = getModule(f->mod); m; m = m->link) {
-               if (strcmp(m->name, f->mod) == 0) {
-                       Symbol s = m->space[(int) (getSymbolIndex(f->imp))];
-                       for (; s; s = s->peer) {
-                               InstrPtr sig = getSignature(s);
-                               int argc = sig->argc - sig->retc;
+       if (!mname || !fname)
+               return 0;
 
-                               if (strcmp(s->name, f->imp) == 0 && ((!f->ops 
&& argc == 0) || list_length(f->ops) == argc || (sig->varargs & VARARGS) == 
VARARGS))
-                                       return 1;
+       for (Module m = getModule(mname); m; m = m->link) {
+               for (Symbol s = findSymbolInModule(m, fname); s; s = s->peer) {
+                       InstrPtr sig = getSignature(s);
+                       int argc = sig->argc - sig->retc;
 
-                       }
+                       if ((!f->ops && argc == 0) || list_length(f->ops) == 
argc || (sig->varargs & VARARGS) == VARARGS)
+                               return 1;
                }
        }
        return 0;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to