Mercurial > hg > graal-jvmci-8
comparison src/share/vm/classfile/verificationType.hpp @ 6605:4ee06e614636
7116786: RFE: Detailed information on VerifyErrors
Summary: Provide additional detail in VerifyError messages
Reviewed-by: sspitsyn, acorn
author | kamg |
---|---|
date | Mon, 06 Aug 2012 15:54:45 -0400 |
parents | 1d1603768966 |
children | c4bc6b5c6f25 2373a1f4987c |
comparison
equal
deleted
inserted
replaced
6604:c3c2141203e7 | 6605:4ee06e614636 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
155 static VerificationType category2_2nd_check() | 155 static VerificationType category2_2nd_check() |
156 { return VerificationType(Category2_2ndQuery); } | 156 { return VerificationType(Category2_2ndQuery); } |
157 | 157 |
158 // For reference types, store the actual Symbol | 158 // For reference types, store the actual Symbol |
159 static VerificationType reference_type(Symbol* sh) { | 159 static VerificationType reference_type(Symbol* sh) { |
160 assert(((uintptr_t)sh & 0x3) == 0, "Oops must be aligned"); | 160 assert(((uintptr_t)sh & 0x3) == 0, "Symbols must be aligned"); |
161 // If the above assert fails in the future because oop* isn't aligned, | 161 // If the above assert fails in the future because oop* isn't aligned, |
162 // then this type encoding system will have to change to have a tag value | 162 // then this type encoding system will have to change to have a tag value |
163 // to descriminate between oops and primitives. | 163 // to descriminate between oops and primitives. |
164 return VerificationType((uintptr_t)sh); | 164 return VerificationType((uintptr_t)sh); |
165 } | 165 } |
301 int index = 0; | 301 int index = 0; |
302 while (name()->byte_at(index++) == '['); | 302 while (name()->byte_at(index++) == '['); |
303 return index; | 303 return index; |
304 } | 304 } |
305 | 305 |
306 void print_on(outputStream* st) const PRODUCT_RETURN; | 306 void print_on(outputStream* st) const; |
307 | 307 |
308 private: | 308 private: |
309 | 309 |
310 bool is_reference_assignable_from( | 310 bool is_reference_assignable_from( |
311 const VerificationType&, ClassVerifier*, TRAPS) const; | 311 const VerificationType&, ClassVerifier*, TRAPS) const; |