![]() |
AW: System.Generics.Collections.TArray.Copy
Gewissheit würden wir kriegen wenn wir noch mindestens einen
das kontrollieren lassen könnten. Freiwillige vor! |
AW: System.Generics.Collections.TArray.Copy
@DsG: Meine Build-Nummer (7.0) habe ich angegeben, und dort ist es noch so wie bei Dir. Uwe scheint wie gesagt die 7.1 zu haben.
|
AW: System.Generics.Collections.TArray.Copy
Embarcadero® RAD Studio XE7 Version 21.0.17707.5020 (entspricht XE7 Update 1)
|
AW: System.Generics.Collections.TArray.Copy
OMG! :shock:
Wer hat denn den Code von TArray.Copy<T> durch die Qualitätsprüfung gelassen?
Delphi-Quellcode:
Die Deklaration von System.CopyArray ist zwar
class procedure TArray.Copy<T>(const Source, Destination: array of T; SourceIndex, DestIndex, Count: NativeInt);
begin CheckArrays(Pointer(@Source[0]), Pointer(@Destination[0]), SourceIndex, Length(Source), DestIndex, Length(Destination), Count); if IsManagedType(T) then System.CopyArray(Pointer(@Destination[SourceIndex]), Pointer(@Source[SourceIndex]), TypeInfo(T), Count) else System.Move(Pointer(@Destination[SourceIndex])^, Pointer(@Source[SourceIndex])^, Count * SizeOf(T)); end;
Delphi-Quellcode:
procedure CopyArray(Dest, Source...
aber die von System.Move immer noch
Delphi-Quellcode:
procedure Move(const Source; var Dest;...
|
AW: System.Generics.Collections.TArray.Copy
Als Ergänzung hier mal meine TestCases, die ich an den jeweiligen BugReport gehängt habe
RSP-9620
Delphi-Quellcode:
RSP-9622
unit Test.System;
interface uses TestFramework; type Test_System_Routines = class( TTestCase ) strict private public procedure SetUp; override; procedure TearDown; override; published procedure Test_CopyArray_Integer; procedure Test_CopyArray_Int64; procedure Test_CopyArray_String; procedure Test_CopyArray_Variant; end; implementation procedure Test_System_Routines.SetUp; begin inherited; end; procedure Test_System_Routines.TearDown; begin inherited; end; procedure Test_System_Routines.Test_CopyArray_Integer; var LSource : TArray<Integer>; LDest: TArray<Integer>; LLength : Integer; begin LLength := 5; SetLength( LSource, LLength ); SetLength( LDest, LLength ); CopyArray( @LDest[0], @LSource[0], TypeInfo( Integer ), LLength ); end; procedure Test_System_Routines.Test_CopyArray_Int64; var LSource : TArray<Int64>; LDest: TArray<Int64>; LLength : Integer; begin LLength := 5; SetLength( LSource, LLength ); SetLength( LDest, LLength ); CopyArray( @LDest[0], @LSource[0], TypeInfo( Int64 ), LLength ); end; procedure Test_System_Routines.Test_CopyArray_String; var LSource : TArray<string>; LDest: TArray<string>; LLength : Integer; begin LLength := 5; SetLength( LSource, LLength ); SetLength( LDest, LLength ); CopyArray( @LDest[0], @LSource[0], TypeInfo( string ), LLength ); end; procedure Test_System_Routines.Test_CopyArray_Variant; var LSource : TArray<Variant>; LDest: TArray<Variant>; LLength : Integer; begin LLength := 5; SetLength( LSource, LLength ); SetLength( LDest, LLength ); CopyArray( @LDest[0], @LSource[0], TypeInfo( Variant ), LLength ); end; initialization RegisterTest( Test_System_Routines.Suite ); end.
Delphi-Quellcode:
unit Test.System.Generics.Collections;
interface uses TestFramework, System.Generics.Collections; type Test_System_Generics_Collections_TArray = class( TTestCase ) strict private FSource: TArray<Integer>; public procedure SetUp; override; procedure TearDown; override; published procedure Test_Copy_1; procedure Test_Copy_2; procedure Test_Copy_3; procedure Test_Copy_4; end; implementation procedure Test_System_Generics_Collections_TArray.SetUp; begin inherited; SetLength( FSource, 10 ); end; procedure Test_System_Generics_Collections_TArray.TearDown; begin inherited; end; procedure Test_System_Generics_Collections_TArray.Test_Copy_1; var LDest: TArray<Integer>; begin SetLength( LDest, 5 ); TArray.Copy<Integer>( FSource, LDest, Length( LDest ) ); end; procedure Test_System_Generics_Collections_TArray.Test_Copy_2; var LDest: TArray<Integer>; begin SetLength( LDest, 5 ); TArray.Copy<Integer>( FSource, LDest, Length( LDest ) - 1 ); end; procedure Test_System_Generics_Collections_TArray.Test_Copy_3; var LDest: TArray<Integer>; begin SetLength( LDest, 5 ); TArray.Copy<Integer>( FSource, LDest, 0, 0, Length( LDest ) ); end; procedure Test_System_Generics_Collections_TArray.Test_Copy_4; var LDest: TArray<Integer>; begin SetLength( LDest, 5 ); TArray.Copy<Integer>( FSource, LDest, 0, 0, Length( LDest ) - 1 ); end; initialization RegisterTest( Test_System_Generics_Collections_TArray.Suite ); end. |
AW: System.Generics.Collections.TArray.Copy
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz