forked from enlightenment/efl
wow. now THAT was interesting. multiple native call entries in the native
symbol table... so returning once the first was set was not a good idea. SVN revision: 11336
This commit is contained in:
parent
795fa244e1
commit
b25fae82f4
|
@ -361,7 +361,10 @@ embryo_program_native_call_add(Embryo_Program *ep, char *name, Embryo_Cell (*fun
|
|||
if ((entry_name) && (!strcmp(entry_name, name)))
|
||||
{
|
||||
func_entry->address = ep->native_calls_size;
|
||||
return;
|
||||
/* FIXME: embryo_cc is putting in multiple native */
|
||||
/* function call entries - so we need to fill in all */
|
||||
/* of them!!! */
|
||||
/* return; */
|
||||
}
|
||||
}
|
||||
func_entry =
|
||||
|
@ -1531,6 +1534,25 @@ embryo_program_run(Embryo_Program *ep, Embryo_Function fn)
|
|||
ep->run_count--;
|
||||
return EMBRYO_PROGRAM_SLEEP;
|
||||
}
|
||||
{
|
||||
Embryo_Header *hdr;
|
||||
int i, num;
|
||||
Embryo_Func_Stub *func_entry;
|
||||
|
||||
hdr = (Embryo_Header *)ep->code;
|
||||
num = NUMENTRIES(hdr, natives, libraries);
|
||||
func_entry = GETENTRY(hdr, natives, 0);
|
||||
for (i = 0; i < num; i++)
|
||||
{
|
||||
char *entry_name;
|
||||
|
||||
entry_name = GETENTRYNAME(hdr, func_entry);
|
||||
if (i == offs)
|
||||
printf("EMBRYO: CALL [%i] %s() non-existant!\n", i, entry_name);
|
||||
func_entry =
|
||||
(Embryo_Func_Stub *)((unsigned char *)func_entry + hdr->defsize);
|
||||
}
|
||||
}
|
||||
ABORT(ep, num);
|
||||
}
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue