tccrun/win64: cleanup runtime function table

- call RtlDeleteFunctionTable
  (important for multiple compilations)

- the RUNTIME_FUNCTION* is now at the beginning of the
  runtime memory.  Therefor when tcc_relocate is called
  with user memory, this should be done manually before
  it is free'd:
      RtlDeleteFunctionTable(*(void**)user_mem);
      [ free(user_mem); ]

- x86_64-gen.c: expand char/short return values to int
This commit is contained in:
grischka
2016-10-19 19:21:27 +02:00
parent 02919cd275
commit bfd1c08d6c
6 changed files with 100 additions and 48 deletions

View File

@ -931,12 +931,8 @@ LIBTCCAPI void tcc_delete(TCCState *s1)
dynarray_reset(&s1->pragma_libs, &s1->nb_pragma_libs);
#ifdef TCC_IS_NATIVE
# ifdef HAVE_SELINUX
munmap (s1->write_mem, s1->mem_size);
munmap (s1->runtime_mem, s1->mem_size);
# else
tcc_free(s1->runtime_mem);
# endif
/* free runtime memory */
tcc_run_free(s1);
#endif
tcc_free(s1->sym_attrs);