@@ -117,6 +117,10 @@ extern "C" const char* ___tracy_demangle( const char* mangled )
117117namespace tracy
118118{
119119
120+ static bool IsKernelAddress (uint64_t addr) {
121+ return (addr >> 63 ) != 0 ;
122+ }
123+
120124void DestroyImageEntry ( ImageEntry& entry )
121125{
122126 tracy_free ( entry.m_path );
@@ -600,7 +604,7 @@ const char* DecodeCallstackPtrFast( uint64_t ptr )
600604
601605const char * GetKernelModulePath ( uint64_t addr )
602606{
603- assert ( addr >> 63 != 0 );
607+ assert ( IsKernelAddress ( addr ) );
604608 if ( !s_krnlCache ) return nullptr ;
605609 const ImageEntry* imageEntry = s_krnlCache->GetImageForAddress ( addr );
606610 if ( imageEntry ) return imageEntry->m_path ;
@@ -615,7 +619,7 @@ struct ModuleNameAndBaseAddress
615619
616620ModuleNameAndBaseAddress GetModuleNameAndPrepareSymbols ( uint64_t addr )
617621{
618- if ( ( addr >> 63 ) != 0 )
622+ if ( IsKernelAddress ( addr ) )
619623 {
620624 const ImageEntry* entry = s_krnlCache->GetImageForAddress ( addr );
621625 if ( entry != nullptr ) return ModuleNameAndBaseAddress{ entry->m_name , entry->m_startAddress };
@@ -1317,7 +1321,7 @@ void GetSymbolForOfflineResolve(void* address, uint64_t imageBaseAddress, Callst
13171321CallstackEntryData DecodeCallstackPtr ( uint64_t ptr )
13181322{
13191323 InitRpmalloc ();
1320- if ( ptr >> 63 == 0 )
1324+ if ( ! IsKernelAddress ( ptr ) )
13211325 {
13221326 const char * imageName = nullptr ;
13231327 uint64_t imageBaseAddress = 0x0 ;
0 commit comments