From 6c654fb83ef07d857af386b58cd2addee983478c Mon Sep 17 00:00:00 2001 From: Andreas HUBERT Date: Tue, 14 Oct 2008 10:32:46 +0200 Subject: [PATCH] * src/vm/jit/verify/icmds.cpp, src/vm/jit/verify/typecheck-common.cpp, src/vm/jit/verify/typecheck-common.hpp, src/vm/jit/verify/typecheck-stackbased.cpp, src/vm/jit/verify/typecheck-typeinferer.cpp, src/vm/jit/verify/typecheck-typeinferer.hpp, src/vm/jit/verify/typecheck.cpp, src/vm/jit/verify/typecheck.hpp, src/vm/jit/verify/typeinfo.cpp, src/vm/jit/verify/typeinfo.hpp: Moved to C++. --HG-- rename : src/vm/jit/verify/icmds.c => src/vm/jit/verify/icmds.cpp rename : src/vm/jit/verify/typecheck-common.c => src/vm/jit/verify/typecheck-common.cpp rename : src/vm/jit/verify/typecheck-common.h => src/vm/jit/verify/typecheck-common.hpp rename : src/vm/jit/verify/typecheck-stackbased.c => src/vm/jit/verify/typecheck-stackbased.cpp rename : src/vm/jit/verify/typecheck-typeinferer.c => src/vm/jit/verify/typecheck-typeinferer.cpp rename : src/vm/jit/verify/typecheck-typeinferer.h => src/vm/jit/verify/typecheck-typeinferer.hpp rename : src/vm/jit/verify/typecheck.c => src/vm/jit/verify/typecheck.cpp rename : src/vm/jit/verify/typecheck.h => src/vm/jit/verify/typecheck.hpp rename : src/vm/jit/verify/typeinfo.c => src/vm/jit/verify/typeinfo.cpp rename : src/vm/jit/verify/typeinfo.h => src/vm/jit/verify/typeinfo.hpp --- src/vm/jit/inline/inline.cpp | 2 +- src/vm/jit/jit.cpp | 2 +- src/vm/jit/jit.hpp | 2 +- src/vm/jit/reg.h | 2 +- src/vm/jit/verify/Makefile.am | 18 ++++---- src/vm/jit/verify/{icmds.c => icmds.cpp} | 0 ...ypecheck-common.c => typecheck-common.cpp} | 12 ++++-- ...ypecheck-common.h => typecheck-common.hpp} | 7 ++++ ...-stackbased.c => typecheck-stackbased.cpp} | 41 +++++++++++-------- ...ypeinferer.c => typecheck-typeinferer.cpp} | 15 +++++-- ...ypeinferer.h => typecheck-typeinferer.hpp} | 7 ++++ .../jit/verify/{typecheck.c => typecheck.cpp} | 16 ++++++-- .../jit/verify/{typecheck.h => typecheck.hpp} | 0 .../jit/verify/{typeinfo.c => typeinfo.cpp} | 41 +++++++++++-------- .../jit/verify/{typeinfo.h => typeinfo.hpp} | 9 ++-- src/vm/resolve.cpp | 2 +- src/vm/resolve.hpp | 2 +- 17 files changed, 113 insertions(+), 65 deletions(-) rename src/vm/jit/verify/{icmds.c => icmds.cpp} (100%) rename src/vm/jit/verify/{typecheck-common.c => typecheck-common.cpp} (98%) rename src/vm/jit/verify/{typecheck-common.h => typecheck-common.hpp} (99%) rename src/vm/jit/verify/{typecheck-stackbased.c => typecheck-stackbased.cpp} (94%) rename src/vm/jit/verify/{typecheck-typeinferer.c => typecheck-typeinferer.cpp} (97%) rename src/vm/jit/verify/{typecheck-typeinferer.h => typecheck-typeinferer.hpp} (95%) rename src/vm/jit/verify/{typecheck.c => typecheck.cpp} (98%) rename src/vm/jit/verify/{typecheck.h => typecheck.hpp} (100%) rename src/vm/jit/verify/{typeinfo.c => typeinfo.cpp} (98%) rename src/vm/jit/verify/{typeinfo.h => typeinfo.hpp} (98%) diff --git a/src/vm/jit/inline/inline.cpp b/src/vm/jit/inline/inline.cpp index 6ceffa01b..2ba9156c2 100644 --- a/src/vm/jit/inline/inline.cpp +++ b/src/vm/jit/inline/inline.cpp @@ -57,7 +57,7 @@ #include "vm/jit/inline/inline.hpp" #include "vm/jit/loop/loop.h" -#include "vm/jit/verify/typecheck.h" +#include "vm/jit/verify/typecheck.hpp" /* algorithm tuning constants *************************************************/ diff --git a/src/vm/jit/jit.cpp b/src/vm/jit/jit.cpp index c218f05e8..981743412 100644 --- a/src/vm/jit/jit.cpp +++ b/src/vm/jit/jit.cpp @@ -103,7 +103,7 @@ # include "vm/jit/python.h" #endif -#include "vm/jit/verify/typecheck.h" +#include "vm/jit/verify/typecheck.hpp" /* debug macros ***************************************************************/ diff --git a/src/vm/jit/jit.hpp b/src/vm/jit/jit.hpp index 838e33028..ecbb865cf 100644 --- a/src/vm/jit/jit.hpp +++ b/src/vm/jit/jit.hpp @@ -68,7 +68,7 @@ typedef struct exception_entry exception_entry; # include "vm/jit/allocator/lsra.h" #endif -#include "vm/jit/verify/typeinfo.h" +#include "vm/jit/verify/typeinfo.hpp" /* common jit/codegen macros **************************************************/ diff --git a/src/vm/jit/reg.h b/src/vm/jit/reg.h index 9dc637b3f..5235e1b11 100644 --- a/src/vm/jit/reg.h +++ b/src/vm/jit/reg.h @@ -38,7 +38,7 @@ typedef struct registerdata registerdata; #include "arch.h" #include "vm/jit/jit.hpp" -#include "vm/jit/verify/typeinfo.h" +#include "vm/jit/verify/typeinfo.hpp" /************************* pseudo variable structure **************************/ diff --git a/src/vm/jit/verify/Makefile.am b/src/vm/jit/verify/Makefile.am index 8be3839e3..c9e3a632e 100644 --- a/src/vm/jit/verify/Makefile.am +++ b/src/vm/jit/verify/Makefile.am @@ -37,22 +37,22 @@ LIBS = noinst_LTLIBRARIES = libverify.la libverify_la_SOURCES = \ - typecheck.c \ - typecheck.h \ - typecheck-common.c \ - typecheck-common.h \ + typecheck.cpp \ + typecheck.hpp \ + typecheck-common.cpp \ + typecheck-common.hpp \ typecheck-builtins.inc \ typecheck-fields.inc \ typecheck-invoke.inc \ typecheck-multianewarray.inc \ - typecheck-stackbased.c \ - typecheck-typeinferer.c \ - typecheck-typeinferer.h \ + typecheck-stackbased.cpp \ + typecheck-typeinferer.cpp \ + typecheck-typeinferer.hpp \ typecheck-stackbased-gen.inc \ typecheck-variablesbased-gen.inc \ typecheck-typeinferer-gen.inc \ - typeinfo.c \ - typeinfo.h + typeinfo.cpp \ + typeinfo.hpp ## Local variables: diff --git a/src/vm/jit/verify/icmds.c b/src/vm/jit/verify/icmds.cpp similarity index 100% rename from src/vm/jit/verify/icmds.c rename to src/vm/jit/verify/icmds.cpp diff --git a/src/vm/jit/verify/typecheck-common.c b/src/vm/jit/verify/typecheck-common.cpp similarity index 98% rename from src/vm/jit/verify/typecheck-common.c rename to src/vm/jit/verify/typecheck-common.cpp index 7b2cdd199..62818a158 100644 --- a/src/vm/jit/verify/typecheck-common.c +++ b/src/vm/jit/verify/typecheck-common.cpp @@ -34,8 +34,11 @@ #include "vm/jit/show.hpp" -#include "typecheck-common.h" +#include "typecheck-common.hpp" +#if defined(__cplusplus) +extern "C" { +#endif /****************************************************************************/ /* DEBUG HELPERS */ @@ -343,7 +346,7 @@ typecheck_result typecheck_merge_types(verifier_state *state, } } } - return changed; + return (typecheck_result) changed; } @@ -387,7 +390,7 @@ typecheck_result typestate_merge(verifier_state *state, r = typevector_merge(state->m, dstlocals, srclocals, state->numlocals); if (r == typecheck_FAIL) return r; - return changed | r; + return (typecheck_result) (changed | r); } @@ -536,6 +539,9 @@ bool typecheck_init_locals(verifier_state *state, bool newthis) return true; } +#if defined(__cplusplus) +} +#endif /* * These are local overrides for various environment variables in Emacs. diff --git a/src/vm/jit/verify/typecheck-common.h b/src/vm/jit/verify/typecheck-common.hpp similarity index 99% rename from src/vm/jit/verify/typecheck-common.h rename to src/vm/jit/verify/typecheck-common.hpp index 226113f16..bc47e375d 100644 --- a/src/vm/jit/verify/typecheck-common.h +++ b/src/vm/jit/verify/typecheck-common.hpp @@ -34,6 +34,9 @@ #include "vm/jit/jit.hpp" +#if defined(__cplusplus) +extern "C" { +#endif /****************************************************************************/ /* DEBUG HELPERS */ @@ -291,6 +294,10 @@ bool typestate_reach(verifier_state *state, bool typecheck_init_locals(verifier_state *state, bool newthis); +#if defined(__cplusplus) +} +#endif + #endif /* _TYPECHECK_COMMON_H */ /* diff --git a/src/vm/jit/verify/typecheck-stackbased.c b/src/vm/jit/verify/typecheck-stackbased.cpp similarity index 94% rename from src/vm/jit/verify/typecheck-stackbased.c rename to src/vm/jit/verify/typecheck-stackbased.cpp index 7056142f0..ceb27be3e 100644 --- a/src/vm/jit/verify/typecheck-stackbased.c +++ b/src/vm/jit/verify/typecheck-stackbased.cpp @@ -41,8 +41,11 @@ #include "vm/jit/parse.hpp" #include "vm/jit/show.hpp" #include "vm/jit/stack.h" -#include "vm/jit/verify/typecheck-common.h" +#include "vm/jit/verify/typecheck-common.hpp" +#if defined(__cplusplus) +extern "C" { +#endif /* this #if runs over the whole file: */ #if defined(ENABLE_VERIFIER) @@ -196,7 +199,7 @@ static typecheck_result typecheck_stackbased_merge_locals(methodinfo *m, a++; b++; } - return changed; + return (typecheck_result) changed; } static typecheck_result typecheck_stackbased_merge(verifier_state *state, @@ -263,7 +266,7 @@ static typecheck_result typecheck_stackbased_merge(verifier_state *state, return r; changed |= r; - return changed; + return (typecheck_result) changed; } static bool typecheck_stackbased_reach(verifier_state *state, @@ -526,7 +529,7 @@ static void typecheck_stackbased_add_jsr_caller(typecheck_jsr_t *jsr, if (jc->callblock == bptr) return; - jc = DNEW(typecheck_jsr_caller_t); + jc = (typecheck_jsr_caller_t*) DumpMemory::allocate(sizeof(typecheck_jsr_caller_t)); jc->next = jsr->callers; jc->callblock = bptr; jsr->callers = jc; @@ -578,16 +581,16 @@ static typedescriptor_t *typecheck_stackbased_jsr(verifier_state *state, if (!jsr) { LOG1("first JSR to block L%03d", tbptr->nr); - jsr = DNEW(typecheck_jsr_t); + jsr = (typecheck_jsr_t*) DumpMemory::allocate(sizeof(typecheck_jsr_t)); state->jsrinfos[tbptr->nr] = jsr; jsr->callers = NULL; - jsr->blockflags = DMNEW(char, state->basicblockcount); + jsr->blockflags = (char*) DumpMemory::allocate(sizeof(char) * state->basicblockcount); jsr->retblock = NULL; jsr->start = tbptr; - jsr->usedlocals = DMNEW(char, state->numlocals); + jsr->usedlocals = (char*) DumpMemory::allocate(sizeof(char) * state->numlocals); MZERO(jsr->usedlocals, char, state->numlocals); - jsr->retlocals = DMNEW(typedescriptor_t, state->numlocals); - jsr->retstack = DMNEW(typedescriptor_t, state->m->maxstack); + jsr->retlocals = (typedescriptor_t*) DumpMemory::allocate(sizeof(typedescriptor_t) * state->numlocals); + jsr->retstack = (typedescriptor_t*) DumpMemory::allocate(sizeof(typedescriptor_t) * state->m->maxstack); jsr->retdepth = 0; } else { @@ -630,7 +633,7 @@ static bool typecheck_stackbased_ret(verifier_state *state, /* get the subroutine we are RETurning from */ - tbptr = TYPEINFO_RETURNADDRESS(state->locals[state->iptr->s1.varindex].typeinfo); + tbptr = (basicblock*) TYPEINFO_RETURNADDRESS(state->locals[state->iptr->s1.varindex].typeinfo); if (tbptr == NULL) { exceptions_throw_verifyerror(state->m, "Illegal RET"); return false; @@ -735,11 +738,11 @@ bool typecheck_stackbased(jitdata *jd) /* allocate the stack buffers */ - stackfloor = DMNEW(verifier_slot_t, state.m->maxstack + 1); + stackfloor = (verifier_slot_t*) DumpMemory::allocate(sizeof(verifier_slot_t) * (state.m->maxstack + 1)); state.stackceiling = stackfloor + state.m->maxstack; stack = stackfloor - 1; - state.indepth = DMNEW(s4, state.basicblockcount); - state.startstack = DMNEW(verifier_slot_t, state.m->maxstack * state.basicblockcount); + state.indepth = (s4*) DumpMemory::allocate(sizeof(s4) * state.basicblockcount); + state.startstack = (verifier_slot_t*) DumpMemory::allocate(sizeof(verifier_slot_t) * state.m->maxstack * state.basicblockcount); /* allocate the local variables buffers */ @@ -748,12 +751,12 @@ bool typecheck_stackbased(jitdata *jd) if (state.initmethod) state.numlocals++; /* extra marker variable */ - state.locals = DMNEW(verifier_slot_t, state.numlocals); - state.startlocals = DMNEW(verifier_slot_t, state.numlocals * state.basicblockcount); + state.locals = (verifier_slot_t*) DumpMemory::allocate(sizeof(verifier_slot_t) * state.numlocals); + state.startlocals = (verifier_slot_t*) DumpMemory::allocate(sizeof(verifier_slot_t) * state.numlocals * state.basicblockcount); /* allocate the buffer of active exception handlers */ - state.handlers = DMNEW(exception_entry*, state.jd->exceptiontablelength + 1); + state.handlers = (exception_entry**) DumpMemory::allocate(sizeof(exception_entry*) * (state.jd->exceptiontablelength + 1)); /* initialize instack of exception handlers */ @@ -765,7 +768,7 @@ bool typecheck_stackbased(jitdata *jd) /* initialize jsr info buffer */ - state.jsrinfos = DMNEW(typecheck_jsr_t *, state.basicblockcount); + state.jsrinfos = (typecheck_jsr_t**) DumpMemory::allocate(sizeof(typecheck_jsr_t*) * state.basicblockcount); MZERO(state.jsrinfos, typecheck_jsr_t *, state.basicblockcount); /* initialize stack of first block */ @@ -1008,6 +1011,10 @@ static void typecheck_stackbased_show_state(verifier_state *state, } #endif +#if defined(__cplusplus) +} +#endif + #endif /* defined(ENABLE_VERIFIER) */ diff --git a/src/vm/jit/verify/typecheck-typeinferer.c b/src/vm/jit/verify/typecheck-typeinferer.cpp similarity index 97% rename from src/vm/jit/verify/typecheck-typeinferer.c rename to src/vm/jit/verify/typecheck-typeinferer.cpp index 60af00882..6f8ee53cd 100644 --- a/src/vm/jit/verify/typecheck-typeinferer.c +++ b/src/vm/jit/verify/typecheck-typeinferer.cpp @@ -50,11 +50,14 @@ #include "vm/jit/show.hpp" #include "vm/jit/parse.hpp" -#include "vm/jit/verify/typecheck-typeinferer.h" +#include "vm/jit/verify/typecheck-typeinferer.hpp" #define TYPECHECK_NO_STATISTICS -#include +#include "vm/jit/verify/typecheck-common.hpp" +#if defined(__cplusplus) +extern "C" { +#endif /* macros used by the generated code ******************************************/ @@ -410,11 +413,11 @@ bool typecheck_infer_types(jitdata *jd) /* allocate the buffer of active exception handlers */ - state.handlers = DMNEW(exception_entry*, state.jd->exceptiontablelength + 1); + state.handlers = (exception_entry**) DumpMemory::allocate(sizeof(exception_entry*) * (state.jd->exceptiontablelength + 1)); /* save local variables */ - savedlocals = DMNEW(varinfo, state.numlocals); + savedlocals = (varinfo*) DumpMemory::allocate(sizeof(varinfo) * state.numlocals); MCOPY(savedlocals, jd->var, varinfo, state.numlocals); /* initialized local variables of first block */ @@ -470,6 +473,10 @@ bool typecheck_infer_types(jitdata *jd) return true; } +#if defined(__cplusplus) +} +#endif + /* * These are local overrides for various environment variables in Emacs. * Please do not remove this and leave it at the end of the file, where diff --git a/src/vm/jit/verify/typecheck-typeinferer.h b/src/vm/jit/verify/typecheck-typeinferer.hpp similarity index 95% rename from src/vm/jit/verify/typecheck-typeinferer.h rename to src/vm/jit/verify/typecheck-typeinferer.hpp index 6684ac939..7bffa5201 100644 --- a/src/vm/jit/verify/typecheck-typeinferer.h +++ b/src/vm/jit/verify/typecheck-typeinferer.hpp @@ -38,6 +38,9 @@ #include "vm/global.h" #include "vm/jit/jit.hpp" +#if defined(__cplusplus) +extern "C" { +#endif /* function prototypes ********************************************************/ @@ -45,6 +48,10 @@ bool typecheck_infer_types(jitdata *jd); #endif +#if defined(__cplusplus) +} +#endif + #endif /* _TYPECHECK_TYPEINFERER_H */ diff --git a/src/vm/jit/verify/typecheck.c b/src/vm/jit/verify/typecheck.cpp similarity index 98% rename from src/vm/jit/verify/typecheck.c rename to src/vm/jit/verify/typecheck.cpp index 00e3cfdea..574e33a81 100644 --- a/src/vm/jit/verify/typecheck.c +++ b/src/vm/jit/verify/typecheck.cpp @@ -162,8 +162,11 @@ error reporting. #include "vm/jit/parse.hpp" #include "vm/jit/show.hpp" -#include +#include "vm/jit/verify/typecheck-common.hpp" +#if defined(__cplusplus) +extern "C" { +#endif /****************************************************************************/ /* MACROS FOR VARIABLE TYPE CHECKING */ @@ -221,7 +224,7 @@ typestate_save_invars(verifier_state *state) if (!state->savedindices) { LOG("allocating savedindices buffer"); - pindex = DMNEW(s4, state->m->maxstack); + pindex = (s4*) DumpMemory::allocate(sizeof(s4) * state->m->maxstack); state->savedindices = pindex; index = state->numlocals + VERIFIER_EXTRA_VARS; for (i=0; im->maxstack; ++i) @@ -750,11 +753,11 @@ bool typecheck(jitdata *jd) /* allocate the buffer of active exception handlers */ - state.handlers = DMNEW(exception_entry*, state.jd->exceptiontablelength + 1); + state.handlers = (exception_entry**) DumpMemory::allocate(sizeof(exception_entry*) * (state.jd->exceptiontablelength + 1)); /* save local variables */ - savedlocals = DMNEW(varinfo, state.numlocals); + savedlocals = (varinfo*) DumpMemory::allocate(sizeof(varinfo) * state.numlocals); MCOPY(savedlocals, jd->var, varinfo, state.numlocals); /* initialized local variables of first block */ @@ -816,6 +819,11 @@ bool typecheck(jitdata *jd) LOGimp("exiting typecheck"); return true; } + +#if defined(__cplusplus) +} +#endif + #endif /* ENABLE_VERIFIER */ /* diff --git a/src/vm/jit/verify/typecheck.h b/src/vm/jit/verify/typecheck.hpp similarity index 100% rename from src/vm/jit/verify/typecheck.h rename to src/vm/jit/verify/typecheck.hpp diff --git a/src/vm/jit/verify/typeinfo.c b/src/vm/jit/verify/typeinfo.cpp similarity index 98% rename from src/vm/jit/verify/typeinfo.c rename to src/vm/jit/verify/typeinfo.cpp index 1da18106a..1a02ca001 100644 --- a/src/vm/jit/verify/typeinfo.c +++ b/src/vm/jit/verify/typeinfo.cpp @@ -42,8 +42,11 @@ #include "vm/resolve.hpp" #include "vm/jit/jit.hpp" -#include "vm/jit/verify/typeinfo.h" +#include "vm/jit/verify/typeinfo.hpp" +#if defined(__cplusplus) +extern "C" { +#endif /* check if a linked class is an array class. Only use for linked classes! */ #define CLASSINFO_IS_ARRAY(clsinfo) ((clsinfo)->vftbl->arraydesc != NULL) @@ -324,7 +327,7 @@ typevector_merge(methodinfo *m,varinfo *dst,varinfo *y,int size) a++; b++; } - return changed; + return (typecheck_result) changed; } /**********************************************************************/ @@ -461,11 +464,11 @@ classinfo_implements_interface(classinfo *cls,classinfo *interf) return typecheck_TRUE; /* check superinterfaces */ - return interface_extends_interface(cls,interf); + return (typecheck_result) interface_extends_interface(cls,interf); } TYPEINFO_ASSERT(cls->state & CLASS_LINKED); - return CLASSINFO_IMPLEMENTS_INTERFACE(cls,interf->index); + return (typecheck_result) CLASSINFO_IMPLEMENTS_INTERFACE(cls,interf->index); } /* mergedlist_implements_interface ********************************************* @@ -769,7 +772,7 @@ typeinfo_is_assignable_to_class(typeinfo_t *value,classref_or_classinfo dest) } /* We are assigning to a class type. */ - return class_issubclass(pseudo_class_Arraystub,elementclass); + return (typecheck_result) class_issubclass(pseudo_class_Arraystub,elementclass); } /* {value and dest.cls have the same dimension} */ @@ -1701,7 +1704,7 @@ typeinfo_merge_nonarrays(typeinfo_t *dest, dest->merged = NULL; *result = x; /* DEBUG */ /* log_text("returning"); */ - return changed; + return (typecheck_result) changed; } xname = (IS_CLASSREF(x)) ? x.ref->name : x.cls->name; @@ -1780,7 +1783,7 @@ typeinfo_merge_nonarrays(typeinfo_t *dest, /* {We know that x.cls!=y.cls (see common case at beginning.)} */ result->cls = class_java_lang_Object; - return typeinfo_merge_two(dest,x,y); + return (typecheck_result) typeinfo_merge_two(dest,x,y); } /* {We know: x is an interface, y is a class.} */ @@ -1874,17 +1877,17 @@ typeinfo_merge_nonarrays(typeinfo_t *dest, if (mergedx) { result->cls = common; if (mergedy) - return typeinfo_merge_mergedlists(dest,mergedx,mergedy); + return (typecheck_result) typeinfo_merge_mergedlists(dest,mergedx,mergedy); else - return typeinfo_merge_add(dest,mergedx,y); + return (typecheck_result) typeinfo_merge_add(dest,mergedx,y); } merge_with_simple_x: result->cls = common; if (mergedy) - return typeinfo_merge_add(dest,mergedy,x); + return (typecheck_result) typeinfo_merge_add(dest,mergedy,x); else - return typeinfo_merge_two(dest,x,y); + return (typecheck_result) typeinfo_merge_two(dest,x,y); } /* typeinfo_merge ************************************************************** @@ -1946,11 +1949,11 @@ typeinfo_merge(methodinfo *m,typeinfo_t *dest,typeinfo_t* y) /* handle uninitialized object types */ if (TYPEINFO_IS_NEWOBJECT(*dest) || TYPEINFO_IS_NEWOBJECT(*y)) { if (!TYPEINFO_IS_NEWOBJECT(*dest) || !TYPEINFO_IS_NEWOBJECT(*y)) { - typeinfo_merge_error(m,"Trying to merge uninitialized object type.",dest,y); + typeinfo_merge_error(m,(char*) "Trying to merge uninitialized object type.",dest,y); return typecheck_FAIL; } if (TYPEINFO_NEWOBJECT_INSTRUCTION(*dest) != TYPEINFO_NEWOBJECT_INSTRUCTION(*y)) { - typeinfo_merge_error(m,"Trying to merge different uninitialized objects.",dest,y); + typeinfo_merge_error(m,(char*) "Trying to merge different uninitialized objects.",dest,y); return typecheck_FAIL; } /* the same uninitialized object -- no change */ @@ -1970,7 +1973,7 @@ return_simple: changed = (dest->merged != NULL); TYPEINFO_FREEMERGED_IF_ANY(dest->merged); dest->merged = NULL; - return changed; + return (typecheck_result) changed; } /* Handle null types: */ @@ -2131,7 +2134,7 @@ return_simple: changed = true; } - return changed; + return (typecheck_result) changed; } #endif /* ENABLE_VERIFER */ @@ -2163,8 +2166,8 @@ typeinfo_test_parse(typeinfo_t *info,char *str) num = typeinfo_count_method_args(desc,false); if (num) { - typebuf = DMNEW(u1,num); - infobuf = DMNEW(typeinfo_t,num); + typebuf = (u1*) DumpMemory::allocate(sizeof(u1) * num); + infobuf = (typeinfo_t*) DumpMemory::allocate(sizeof(typeinfo_t) * num); typeinfo_init_from_method_args(desc,typebuf,infobuf,num,false, &returntype,info); @@ -2547,6 +2550,10 @@ typevector_print(FILE *file,varinfo *vec,int size) } } +#if defined(__cplusplus) +} +#endif + #endif /* TYPEINFO_DEBUG */ diff --git a/src/vm/jit/verify/typeinfo.h b/src/vm/jit/verify/typeinfo.hpp similarity index 98% rename from src/vm/jit/verify/typeinfo.h rename to src/vm/jit/verify/typeinfo.hpp index 806bca973..00d78e008 100644 --- a/src/vm/jit/verify/typeinfo.h +++ b/src/vm/jit/verify/typeinfo.hpp @@ -264,10 +264,10 @@ struct typedescriptor { ((size) * sizeof(varinfo)) #define DNEW_TYPEVECTOR(size) \ - ((varinfo *) DMNEW(uint8_t, TYPEVECTOR_SIZE(size))) + ((varinfo *) DumpMemory::allocate(TYPEVECTOR_SIZE(size))) -#define DMNEW_TYPEVECTOR(num,size) \ - ((void *) DMNEW(uint8_t, (num) * TYPEVECTOR_SIZE(size))) +#define DMNEW_TYPEVECTOR(num,size) \ + ((varinfo *) DumpMemory::allocate((num) * TYPEVECTOR_SIZE(size))) #define MGET_TYPEVECTOR(array,index,size) \ ((varinfo*) (((u1*)(array)) + TYPEVECTOR_SIZE(size) * (index))) @@ -276,8 +276,7 @@ struct typedescriptor { /* internal, don't use this explicitly! */ #define TYPEINFO_ALLOCMERGED(mergedlist,count) \ - do {(mergedlist) = (typeinfo_mergedlist_t *) DMNEW(uint8_t, \ - sizeof(typeinfo_mergedlist_t) \ + do {(mergedlist) = (typeinfo_mergedlist_t *) DumpMemory::allocate(sizeof(typeinfo_mergedlist_t) \ + ((count)-1)*sizeof(classinfo*));} while(0) /* internal, don't use this explicitly! */ diff --git a/src/vm/resolve.cpp b/src/vm/resolve.cpp index cdd42a733..0dc57ef3e 100644 --- a/src/vm/resolve.cpp +++ b/src/vm/resolve.cpp @@ -44,7 +44,7 @@ #include "vm/resolve.hpp" #include "vm/jit/jit.hpp" -#include "vm/jit/verify/typeinfo.h" +#include "vm/jit/verify/typeinfo.hpp" /******************************************************************************/ diff --git a/src/vm/resolve.hpp b/src/vm/resolve.hpp index 148604ebc..dc6ccfc1c 100644 --- a/src/vm/resolve.hpp +++ b/src/vm/resolve.hpp @@ -47,7 +47,7 @@ typedef struct unresolved_subtype_set unresolved_subtype_set; #include "vm/jit/reg.h" #include "vm/jit/ir/instruction.hpp" -#include "vm/jit/verify/typeinfo.h" +#include "vm/jit/verify/typeinfo.hpp" /* constants ******************************************************************/ -- 2.25.1