RFR: 8152845: Improve PackageEntry and ModuleEntry print methods for future logging

Rachel Protacio rachel.protacio at oracle.com
Wed Apr 13 14:57:05 UTC 2016


On 4/12/2016 5:33 PM, Coleen Phillimore wrote:
>
> But in these functions, the print is going to print to tty rather than 
> to the outputStream* st:
>
> +void ModuleEntryTable::print(outputStream* st) {
> + st->print_cr("Module Entry Table (table_size=%d, entries=%d)",
>                  table_size(), number_of_entries());
>    for (int i = 0; i < table_size(); i++) {
>      for (ModuleEntry* probe = bucket(i);
>                                probe != NULL;
>                                probe = probe->next()) {
>        probe->print();
>      }
>    }
>  }
>
I missed the print() at the end, thanks for noticing! New webrev: 
http://cr.openjdk.java.net/~rprotacio/8152845.01/

> Which functions weren't declared as const?
>
table_size() and number_of_entries() from hashtable.hpp both aren't 
const. And neither is ModuleEntryTable::bucket().

Rachel
> Coleen
>
>
> On 4/12/16 10:39 AM, Rachel Protacio wrote:
>> Hello,
>>
>> Please review this fix, moving the jigsaw PackageEntry and 
>> ModuleEntry print methods to product mode and making them able to 
>> take an outputStream. This way, we can use them for Unified Logging 
>> in the future.
>>
>> Note: I changed the signature to take an optional stream rather than 
>> following the "print_on" scheme because the print_on function that 
>> these classes inherit is declared as 'const', which is incompatible 
>> with the non-const function calls within the print function.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8152845
>> Open webrev: http://cr.openjdk.java.net/~rprotacio/8152845.00/
>>
>> Tested with JPRT and RBT quick and non-colo tests.
>>
>> Thanks,
>> Rachel
>



More information about the hotspot-runtime-dev mailing list