@@ -522,7 +522,6 @@ private unsafe string GetFullProcessImageName()
522522 {
523523 //TODO: inline
524524 uint size = 260 + 1 ;
525- char [ ] array = new char [ size ] ;
526525 const string errUnableMsg = "Unable to query " + nameof ( ProcessMainModulePath ) + "; " ;
527526
528527 if ( ProcessHandle . v is null )
@@ -533,8 +532,7 @@ private unsafe string GetFullProcessImageName()
533532 SafeBuffer < char > buffer = new ( numElements : size ) ;
534533 if ( QueryFullProcessImageName ( ProcessHandle . v , PROCESS_NAME_FORMAT . PROCESS_NAME_WIN32 , lpExeName : buffer . DangerousGetHandle ( ) , ref size ) )
535534 {
536- buffer . ReadArray ( 0 , array , 0 , ( int ) size ) ;
537- return new string ( array ) ;
535+ return new string ( ( char * ) buffer . DangerousGetHandle ( ) , 0 , ( int ) size ) ;
538536 }
539537 else if ( buffer . ByteLength < size )
540538 {
@@ -545,8 +543,7 @@ private unsafe string GetFullProcessImageName()
545543 buffer . DangerousGetHandle ( ) ,
546544 ref size ) )
547545 {
548- buffer . ReadArray ( 0 , array , 0 , ( int ) size ) ;
549- return new string ( array ) ;
546+ return new string ( ( char * ) buffer . DangerousGetHandle ( ) , 0 , ( int ) size ) ;
550547 }
551548 }
552549 // this constructor calls Marshal.GetLastPInvokeError() and Marshal.GetPInvokeErrorMessage(int)
0 commit comments