[kaffe] kaffeh leaves incomplete output files
Takahiko_Kawasaki@cii.csk.co.jp
Takahiko_Kawasaki@cii.csk.co.jp
Mon, 29 Jul 2002 13:14:59 +0900
The last item of the known-bugs says:
--------------------------------------
kaffeh leaves incomplete output files
around if it bails (fails?) because
it cannot find the class file.
--------------------------------------
It seems that this is caused by inappropriate exit()'s
called in the function 'kaffeh_findClass()' in the file
'kaffe/kaffeh/support.c'.
If below modifications are applied, the bug may be fixed.
1. change kaffeh_findClass()'s prototype so that
it can return its status.
2. change all the 'return;'s in kaffeh_findClass()
into 'return 0;' to indicate it has succeeded.
3. change all the 'exit()'s in kaffeh_findClass()
into 'return -1;' to indicate it has failed.
4. treat the return value of kaffeh_findClass()
appropriately in 'main()' in the file
'kaffe/kaffeh/main.c'. For example, in case
kaffeh_findClass() returns failure status,
remove the corresponding output file, or
insert '#error ......' line before closing
the file.
As far as I have looked into source codes, kaffeh_findClass()
is called from only main() in kaffe/kaffeh/main.c and
setupClass() in kaffe/kaffeh/support.c. However, setupClass()
in kaffe/kaffeh/support.c is not called from anywhere (there
is a similar function in kaffe/kaffevm/classMethod.c). So,
I think modifications above can be simply applied.
Takahiko KAWASAKI