< prev index next >

src/hotspot/share/asm/codeBuffer.cpp

Print this page
rev 53847 : 8219214: Infinite Loop in CodeSection::dump()
Reviewed-by:

*** 1,7 **** /* ! * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 1028,1051 **** } #ifndef PRODUCT void CodeSection::dump() { ! address ptr = start(); ! for (csize_t step; ptr < end(); ptr += step) { ! step = end() - ptr; ! if (step > jintSize * 4) step = jintSize * 4; ! tty->print(INTPTR_FORMAT ": ", p2i(ptr)); ! while (step > 0) { tty->print(" " PTR32_FORMAT, *(jint*)ptr); ! ptr += jintSize; } tty->cr(); } } - void CodeSection::decode() { Disassembler::decode(start(), end()); } --- 1028,1053 ---- } #ifndef PRODUCT void CodeSection::dump() { ! address limit = end(); ! csize_t bytes_per_blk = jintSize; ! csize_t bytes_per_line = 4*bytes_per_blk; ! ! for (address ptr = start(); ptr < limit; ) { ! csize_t bytes_to_print = (limit - ptr) < bytes_per_line ? (limit - ptr) : bytes_per_line; ! tty->print(INTPTR_FORMAT ":", p2i(ptr)); ! while (bytes_to_print >= bytes_per_blk) { // don't access data beyond end of range. tty->print(" " PTR32_FORMAT, *(jint*)ptr); ! ptr += bytes_per_blk; ! bytes_to_print -= bytes_per_blk; } tty->cr(); } } void CodeSection::decode() { Disassembler::decode(start(), end()); }
< prev index next >