--- old/src/os/solaris/dtrace/generateJvmOffsets.cpp 2014-08-28 12:47:06.655044768 +0200 +++ new/src/os/solaris/dtrace/generateJvmOffsets.cpp 2014-08-28 12:47:06.423044779 +0200 @@ -82,21 +82,24 @@ #endif /* ASSERT */ #endif /* COMPILER1 */ -#define GEN_OFFS(Type,Name) \ +#define GEN_OFFS_NAME(Type,Name,OutputType) \ switch(gen_variant) { \ case GEN_OFFSET: \ printf("#define OFFSET_%-33s %d\n", \ - #Type #Name, offset_of(Type, Name)); \ + #OutputType #Name, offset_of(Type, Name)); \ break; \ case GEN_INDEX: \ printf("#define IDX_OFFSET_%-33s %d\n", \ - #Type #Name, index++); \ + #OutputType #Name, index++); \ break; \ case GEN_TABLE: \ - printf("\tOFFSET_%s,\n", #Type #Name); \ + printf("\tOFFSET_%s,\n", #OutputType #Name); \ break; \ } +#define GEN_OFFS(Type,Name) \ + GEN_OFFS_NAME(Type,Name,Type) + #define GEN_SIZE(Type) \ switch(gen_variant) { \ case GEN_OFFSET: \ @@ -241,6 +244,11 @@ GEN_OFFS(VirtualSpace, _high); printf("\n"); + /* We need to use different names here because of the template parameter */ + GEN_OFFS_NAME(GrowableArray, _data, GrowableArray_CodeHeap); + GEN_OFFS_NAME(GrowableArray, _len, GrowableArray_CodeHeap); + printf("\n"); + GEN_OFFS(CodeBlob, _name); GEN_OFFS(CodeBlob, _header_size); GEN_OFFS(CodeBlob, _content_offset);