RFR: 8300052: PdhDll::PdhCollectQueryData and PdhLookupPerfNameByIndex will never be NULL

Julian Waters jwaters at openjdk.org
Mon Jan 16 03:45:11 UTC 2023


On Mon, 16 Jan 2023 02:59:56 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> Both PdhDll::PdhCollectQueryData and PdhLookupPerfNameByIndex are concrete definitions and not pointers to executable code (Former is defined by us and the latter is a macro that expands into a concrete declaration), so it makes no sense to check if they will be NULL. The code fails to compile on Windows before this commit when gcc has warnings as errors enabled (-Waddress in this case)
>> 
>> In the case of PdhCollectQueryData I'm assuming the check actually intended to check for _PdhCollectQueryData with the leading underscore, which is actually a pointer and can be NULL. Do correct me if I'm wrong and point me to what the appropriate check would be otherwise
>
> src/hotspot/os/windows/pdh_interface.cpp line 116:
> 
>> 114:          && _PdhCloseQuery != NULL && PdhCollectQueryData != NULL
>> 115:          && _PdhGetFormattedCounterValue != NULL && _PdhEnumObjectItems != NULL
>> 116:          && _PdhRemoveCounter != NULL && PdhLookupPerfNameByIndex != NULL
> 
> Shouldn't this also be checking the underscore version ie `_PdhLookupPerfNameByIndex`?

Ah, oh dear, I have no idea how I missed that. Will fix as requested

-------------

PR: https://git.openjdk.org/jdk/pull/11968


More information about the hotspot-runtime-dev mailing list