- Timestamp:
- Mar 24, 2011, 6:50:50 AM (14 years ago)
- Location:
- Generics/TemplateGenerics
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
Generics/TemplateGenerics/Demo/Demo.lpi
r112 r219 38 38 </Item2> 39 39 </RequiredPackages> 40 <Units Count="6 2">40 <Units Count="66"> 41 41 <Unit0> 42 42 <Filename Value="Demo.lpr"/> … … 55 55 <ResourceBaseClass Value="Form"/> 56 56 <UnitName Value="UMainForm"/> 57 <IsVisibleTab Value="True"/> 57 58 <EditorIndex Value="0"/> 58 59 <WindowIndex Value="0"/> 59 <TopLine Value=" 232"/>60 <CursorPos X=" 19" Y="237"/>60 <TopLine Value="645"/> 61 <CursorPos X="28" Y="663"/> 61 62 <UsageCount Value="233"/> 62 63 <Bookmarks Count="1"> … … 78 79 <Filename Value="../Specialized/SpecializedList.pas"/> 79 80 <UnitName Value="SpecializedList"/> 80 <EditorIndex Value=" 2"/>81 <WindowIndex Value="0"/> 82 <TopLine Value=" 3"/>83 <CursorPos X=" 43" Y="13"/>81 <EditorIndex Value="1"/> 82 <WindowIndex Value="0"/> 83 <TopLine Value="47"/> 84 <CursorPos X="20" Y="60"/> 84 85 <UsageCount Value="10"/> 85 86 <Loaded Value="True"/> … … 312 313 <Unit32> 313 314 <Filename Value="../Generic/GenericList.inc"/> 314 <IsVisibleTab Value="True"/> 315 <EditorIndex Value="6"/> 316 <WindowIndex Value="0"/> 317 <TopLine Value="462"/> 318 <CursorPos X="40" Y="470"/> 315 <EditorIndex Value="2"/> 316 <WindowIndex Value="0"/> 317 <TopLine Value="227"/> 318 <CursorPos X="29" Y="238"/> 319 319 <UsageCount Value="107"/> 320 320 <Loaded Value="True"/> … … 433 433 <CursorPos X="37" Y="2636"/> 434 434 <UsageCount Value="90"/> 435 <DefaultSyntaxHighlighter Value="Delphi"/> 435 436 </Unit47> 436 437 <Unit48> … … 448 449 <CursorPos X="14" Y="213"/> 449 450 <UsageCount Value="28"/> 451 <DefaultSyntaxHighlighter Value="Delphi"/> 450 452 </Unit49> 451 453 <Unit50> … … 455 457 <CursorPos X="3" Y="201"/> 456 458 <UsageCount Value="28"/> 459 <DefaultSyntaxHighlighter Value="Delphi"/> 457 460 </Unit50> 458 461 <Unit51> … … 470 473 <CursorPos X="27" Y="26"/> 471 474 <UsageCount Value="28"/> 475 <DefaultSyntaxHighlighter Value="Delphi"/> 472 476 </Unit52> 473 477 <Unit53> … … 477 481 <CursorPos X="3" Y="398"/> 478 482 <UsageCount Value="28"/> 483 <DefaultSyntaxHighlighter Value="Delphi"/> 479 484 </Unit53> 480 485 <Unit54> … … 484 489 <CursorPos X="10" Y="503"/> 485 490 <UsageCount Value="7"/> 491 <DefaultSyntaxHighlighter Value="Delphi"/> 486 492 </Unit54> 487 493 <Unit55> … … 491 497 <CursorPos X="22" Y="2273"/> 492 498 <UsageCount Value="19"/> 499 <DefaultSyntaxHighlighter Value="Delphi"/> 493 500 </Unit55> 494 501 <Unit56> … … 512 519 <Unit58> 513 520 <Filename Value="../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/dateutil.inc"/> 514 <EditorIndex Value="5"/>515 521 <WindowIndex Value="0"/> 516 522 <TopLine Value="38"/> 517 523 <CursorPos X="3" Y="50"/> 518 524 <UsageCount Value="11"/> 519 < Loaded Value="True"/>525 <DefaultSyntaxHighlighter Value="Delphi"/> 520 526 </Unit58> 521 527 <Unit59> 522 528 <Filename Value="../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/classesh.inc"/> 523 <EditorIndex Value="1"/>524 529 <WindowIndex Value="0"/> 525 530 <TopLine Value="649"/> 526 531 <CursorPos X="38" Y="671"/> 527 532 <UsageCount Value="10"/> 528 < Loaded Value="True"/>533 <DefaultSyntaxHighlighter Value="Delphi"/> 529 534 </Unit59> 530 535 <Unit60> 531 536 <Filename Value="../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/stringl.inc"/> 532 <EditorIndex Value="4"/>533 537 <WindowIndex Value="0"/> 534 538 <TopLine Value="1185"/> 535 539 <CursorPos X="22" Y="1196"/> 536 540 <UsageCount Value="10"/> 537 < Loaded Value="True"/>541 <DefaultSyntaxHighlighter Value="Delphi"/> 538 542 </Unit60> 539 543 <Unit61> 540 544 <Filename Value="../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/types.pp"/> 541 545 <UnitName Value="types"/> 542 <EditorIndex Value="3"/>543 546 <WindowIndex Value="0"/> 544 547 <TopLine Value="112"/> 545 548 <CursorPos X="3" Y="124"/> 546 549 <UsageCount Value="10"/> 547 < Loaded Value="True"/>550 <DefaultSyntaxHighlighter Value="Delphi"/> 548 551 </Unit61> 552 <Unit62> 553 <Filename Value="../../../../../Projekty2/FreePascalManager/trunk/Instance/1/FPC/rtl/objpas/sysutils/sysstrh.inc"/> 554 <EditorIndex Value="3"/> 555 <WindowIndex Value="0"/> 556 <TopLine Value="71"/> 557 <CursorPos X="10" Y="84"/> 558 <UsageCount Value="10"/> 559 <Loaded Value="True"/> 560 </Unit62> 561 <Unit63> 562 <Filename Value="../../../../../Projekty2/FreePascalManager/trunk/Instance/1/FPC/rtl/objpas/sysutils/sysstr.inc"/> 563 <EditorIndex Value="4"/> 564 <WindowIndex Value="0"/> 565 <TopLine Value="148"/> 566 <CursorPos X="11" Y="169"/> 567 <UsageCount Value="10"/> 568 <Loaded Value="True"/> 569 </Unit63> 570 <Unit64> 571 <Filename Value="../../../../../Projekty2/FreePascalManager/trunk/Instance/1/FPC/rtl/inc/systemh.inc"/> 572 <EditorIndex Value="5"/> 573 <WindowIndex Value="0"/> 574 <TopLine Value="511"/> 575 <CursorPos X="11" Y="524"/> 576 <UsageCount Value="10"/> 577 <Loaded Value="True"/> 578 </Unit64> 579 <Unit65> 580 <Filename Value="../../../../../Projekty2/FreePascalManager/trunk/Instance/1/FPC/rtl/i386/i386.inc"/> 581 <EditorIndex Value="6"/> 582 <WindowIndex Value="0"/> 583 <TopLine Value="411"/> 584 <CursorPos X="10" Y="424"/> 585 <UsageCount Value="10"/> 586 <Loaded Value="True"/> 587 </Unit65> 549 588 </Units> 550 589 <JumpHistory Count="30" HistoryIndex="27"> 551 590 <Position1> 552 591 <Filename Value="UMainForm.pas"/> 553 <Caret Line=" 42" Column="51" TopLine="20"/>592 <Caret Line="617" Column="1" TopLine="593"/> 554 593 </Position1> 555 594 <Position2> 556 595 <Filename Value="UMainForm.pas"/> 557 <Caret Line=" 458" Column="36" TopLine="440"/>596 <Caret Line="260" Column="25" TopLine="230"/> 558 597 </Position2> 559 598 <Position3> 560 599 <Filename Value="UMainForm.pas"/> 561 <Caret Line=" 7" Column="52" TopLine="1"/>600 <Caret Line="246" Column="21" TopLine="233"/> 562 601 </Position3> 563 602 <Position4> 564 603 <Filename Value="UMainForm.pas"/> 565 <Caret Line=" 526" Column="1" TopLine="502"/>604 <Caret Line="364" Column="25" TopLine="358"/> 566 605 </Position4> 567 606 <Position5> 568 607 <Filename Value="UMainForm.pas"/> 569 <Caret Line=" 32" Column="49" TopLine="27"/>608 <Caret Line="596" Column="33" TopLine="586"/> 570 609 </Position5> 571 610 <Position6> 572 611 <Filename Value="UMainForm.pas"/> 573 <Caret Line=" 416" Column="38" TopLine="312"/>612 <Caret Line="237" Column="19" TopLine="232"/> 574 613 </Position6> 575 614 <Position7> 576 <Filename Value=" UMainForm.pas"/>577 <Caret Line="4 17" Column="38" TopLine="393"/>615 <Filename Value="../Generic/GenericList.inc"/> 616 <Caret Line="468" Column="70" TopLine="462"/> 578 617 </Position7> 579 618 <Position8> 580 <Filename Value=" UMainForm.pas"/>581 <Caret Line="4 18" Column="38" TopLine="394"/>619 <Filename Value="../Generic/GenericList.inc"/> 620 <Caret Line="469" Column="1" TopLine="462"/> 582 621 </Position8> 583 622 <Position9> 584 <Filename Value=" UMainForm.pas"/>585 <Caret Line=" 241" Column="3" TopLine="234"/>623 <Filename Value="../Generic/GenericList.inc"/> 624 <Caret Line="470" Column="1" TopLine="462"/> 586 625 </Position9> 587 626 <Position10> 588 <Filename Value=" UMainForm.pas"/>589 <Caret Line=" 377" Column="1" TopLine="361"/>627 <Filename Value="../Generic/GenericList.inc"/> 628 <Caret Line="471" Column="1" TopLine="462"/> 590 629 </Position10> 591 630 <Position11> 592 <Filename Value=" UMainForm.pas"/>593 <Caret Line=" 617" Column="1" TopLine="593"/>631 <Filename Value="../Generic/GenericList.inc"/> 632 <Caret Line="470" Column="5" TopLine="462"/> 594 633 </Position11> 595 634 <Position12> 596 635 <Filename Value="UMainForm.pas"/> 597 <Caret Line="2 60" Column="25" TopLine="230"/>636 <Caret Line="237" Column="19" TopLine="232"/> 598 637 </Position12> 599 638 <Position13> 600 639 <Filename Value="UMainForm.pas"/> 601 <Caret Line="2 46" Column="21" TopLine="233"/>640 <Caret Line="237" Column="19" TopLine="232"/> 602 641 </Position13> 603 642 <Position14> 604 643 <Filename Value="UMainForm.pas"/> 605 <Caret Line=" 364" Column="25" TopLine="358"/>644 <Caret Line="495" Column="26" TopLine="482"/> 606 645 </Position14> 607 646 <Position15> 608 647 <Filename Value="UMainForm.pas"/> 609 <Caret Line="5 96" Column="33" TopLine="586"/>648 <Caret Line="503" Column="9" TopLine="490"/> 610 649 </Position15> 611 650 <Position16> 612 651 <Filename Value="UMainForm.pas"/> 613 <Caret Line=" 237" Column="19" TopLine="232"/>652 <Caret Line="480" Column="3" TopLine="467"/> 614 653 </Position16> 615 654 <Position17> 616 <Filename Value=" ../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/classesh.inc"/>617 <Caret Line=" 701" Column="36" TopLine="683"/>655 <Filename Value="UMainForm.pas"/> 656 <Caret Line="511" Column="32" TopLine="498"/> 618 657 </Position17> 619 658 <Position18> 620 <Filename Value=" ../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/classesh.inc"/>621 <Caret Line=" 659" Column="27" TopLine="653"/>659 <Filename Value="UMainForm.pas"/> 660 <Caret Line="519" Column="33" TopLine="506"/> 622 661 </Position18> 623 662 <Position19> 624 <Filename Value=" ../Generic/GenericList.inc"/>625 <Caret Line=" 468" Column="70" TopLine="462"/>663 <Filename Value="UMainForm.pas"/> 664 <Caret Line="526" Column="26" TopLine="513"/> 626 665 </Position19> 627 666 <Position20> 628 <Filename Value=" ../Generic/GenericList.inc"/>629 <Caret Line=" 469" Column="1" TopLine="462"/>667 <Filename Value="UMainForm.pas"/> 668 <Caret Line="538" Column="27" TopLine="525"/> 630 669 </Position20> 631 670 <Position21> 632 <Filename Value=" ../Generic/GenericList.inc"/>633 <Caret Line=" 470" Column="1" TopLine="462"/>671 <Filename Value="UMainForm.pas"/> 672 <Caret Line="549" Column="26" TopLine="536"/> 634 673 </Position21> 635 674 <Position22> 636 <Filename Value=" ../Generic/GenericList.inc"/>637 <Caret Line=" 471" Column="1" TopLine="462"/>675 <Filename Value="UMainForm.pas"/> 676 <Caret Line="561" Column="25" TopLine="548"/> 638 677 </Position22> 639 678 <Position23> 640 <Filename Value=" ../Generic/GenericList.inc"/>641 <Caret Line=" 470" Column="5" TopLine="462"/>679 <Filename Value="UMainForm.pas"/> 680 <Caret Line="572" Column="16" TopLine="559"/> 642 681 </Position23> 643 682 <Position24> 644 683 <Filename Value="UMainForm.pas"/> 645 <Caret Line=" 237" Column="19" TopLine="232"/>684 <Caret Line="584" Column="25" TopLine="571"/> 646 685 </Position24> 647 686 <Position25> 648 <Filename Value=" ../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/classesh.inc"/>649 <Caret Line=" 659" Column="26" TopLine="647"/>687 <Filename Value="UMainForm.pas"/> 688 <Caret Line="595" Column="26" TopLine="582"/> 650 689 </Position25> 651 690 <Position26> 652 <Filename Value="../ ../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/stringl.inc"/>653 <Caret Line=" 1193" Column="20" TopLine="1185"/>691 <Filename Value="../Generic/GenericList.inc"/> 692 <Caret Line="214" Column="12" TopLine="201"/> 654 693 </Position26> 655 694 <Position27> 656 <Filename Value="../ ../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/stringl.inc"/>657 <Caret Line=" 1196" Column="22" TopLine="1185"/>695 <Filename Value="../Generic/GenericList.inc"/> 696 <Caret Line="231" Column="16" TopLine="218"/> 658 697 </Position27> 659 698 <Position28> 660 <Filename Value=" ../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/classesh.inc"/>661 <Caret Line="6 61" Column="23" TopLine="649"/>699 <Filename Value="UMainForm.pas"/> 700 <Caret Line="634" Column="11" TopLine="614"/> 662 701 </Position28> 663 702 <Position29> 664 <Filename Value=" ../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/classesh.inc"/>665 <Caret Line=" 657" Column="48" TopLine="644"/>703 <Filename Value="UMainForm.pas"/> 704 <Caret Line="479" Column="12" TopLine="467"/> 666 705 </Position29> 667 706 <Position30> 668 <Filename Value="../ ../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/classesh.inc"/>669 <Caret Line=" 651" Column="3" TopLine="639"/>707 <Filename Value="../Generic/GenericList.inc"/> 708 <Caret Line="23" Column="58" TopLine="9"/> 670 709 </Position30> 671 710 </JumpHistory> 672 711 </ProjectOptions> 673 712 <CompilerOptions> 674 <Version Value=" 9"/>713 <Version Value="10"/> 675 714 <Target> 676 715 <Filename Value="Demo"/> -
Generics/TemplateGenerics/Demo/UMainForm.pas
r111 r219 478 478 var 479 479 List: TListPointer; 480 List2: T List;480 List2: TFPList; 481 481 StartTime: TDateTime; 482 482 I: Integer; … … 484 484 SampleCount: Integer = 100000; 485 485 begin 486 LabelTestName.Caption := 'Generic specialized TListObject vs. classic non-generic T List benchmark';486 LabelTestName.Caption := 'Generic specialized TListObject vs. classic non-generic TFPList benchmark'; 487 487 ListViewOutput.Clear; 488 488 try 489 489 UpdateButtonState(False); 490 490 List := TListPointer.Create; 491 List2 := TList.Create; 492 493 StartTime := Now; 494 repeat 495 List.Add(1); 491 List2 := TFPList.Create; 492 493 WriteOutput('TListPointer.InstanceSize', IntToStr(TListPointer.InstanceSize) + ' bytes'); 494 WriteOutput('TFPList.InstanceSize', IntToStr(TFPList.InstanceSize) + ' bytes'); 495 496 StartTime := Now; 497 repeat 498 List.Add(Pointer(1)); 496 499 until (Now - StartTime) > MeasureDuration; 497 500 WriteOutput('TListPointer.Add', IntToStr(List.Count) + ' ops'); … … 501 504 StartTime := Now; 502 505 repeat 503 List2.Add( 1);504 until (Now - StartTime) > MeasureDuration; 505 WriteOutput('T List.Add', IntToStr(List2.Count) + ' ops');506 List2.Add(Pointer(1)); 507 until (Now - StartTime) > MeasureDuration; 508 WriteOutput('TFPList.Add', IntToStr(List2.Count) + ' ops'); 506 509 List2.Clear; 507 510 Application.ProcessMessages; … … 509 512 StartTime := Now; 510 513 repeat 511 List.Insert(0, 1);514 List.Insert(0, Pointer(1)); 512 515 until (Now - StartTime) > MeasureDuration; 513 516 WriteOutput('TListPointer.Insert', IntToStr(List.Count) + ' ops'); … … 517 520 StartTime := Now; 518 521 repeat 519 List2.Insert(0, 1);520 until (Now - StartTime) > MeasureDuration; 521 WriteOutput('T List.Insert', IntToStr(List2.Count) + ' ops');522 List2.Insert(0, Pointer(1)); 523 until (Now - StartTime) > MeasureDuration; 524 WriteOutput('TFPList.Insert', IntToStr(List2.Count) + ' ops'); 522 525 List2.Clear; 523 526 Application.ProcessMessages; 524 527 525 528 for I := 0 to SampleCount - 1 do 526 List.Add( 1);529 List.Add(Pointer(1)); 527 530 StartTime := Now; 528 531 I := 0; … … 536 539 537 540 for I := 0 to SampleCount - 1 do 538 List2.Add( 1);541 List2.Add(Pointer(1)); 539 542 StartTime := Now; 540 543 I := 0; … … 543 546 Inc(I); 544 547 until (Now - StartTime) > MeasureDuration; 545 WriteOutput('T List.Delete', IntToStr(I) + ' ops');546 Application.ProcessMessages; 547 548 for I := 0 to SampleCount - 1 do 549 List.Add( 1);548 WriteOutput('TFPList.Delete', IntToStr(I) + ' ops'); 549 Application.ProcessMessages; 550 551 for I := 0 to SampleCount - 1 do 552 List.Add(Pointer(1)); 550 553 StartTime := Now; 551 554 I := 0; … … 559 562 560 563 for I := 0 to SampleCount - 1 do 561 List2.Add( 1);564 List2.Add(Pointer(1)); 562 565 StartTime := Now; 563 566 I := 0; … … 566 569 Inc(I); 567 570 until (Now - StartTime) > MeasureDuration; 568 WriteOutput('T List.Move', IntToStr(I) + ' ops');569 Application.ProcessMessages; 570 571 for I := 0 to SampleCount - 1 do 572 List.Add( 1);571 WriteOutput('TFPList.Move', IntToStr(I) + ' ops'); 572 Application.ProcessMessages; 573 574 for I := 0 to SampleCount - 1 do 575 List.Add(Pointer(1)); 573 576 StartTime := Now; 574 577 I := 0; … … 582 585 583 586 for I := 0 to SampleCount - 1 do 584 List2.Add( 1);587 List2.Add(Pointer(1)); 585 588 StartTime := Now; 586 589 I := 0; … … 589 592 Inc(I); 590 593 until (Now - StartTime) > MeasureDuration; 591 WriteOutput('T List.Exchange', IntToStr(I) + ' ops');592 Application.ProcessMessages; 593 594 for I := 0 to SampleCount - 1 do 595 List.Add( 1);594 WriteOutput('TFPList.Exchange', IntToStr(I) + ' ops'); 595 Application.ProcessMessages; 596 597 for I := 0 to SampleCount - 1 do 598 List.Add(Pointer(1)); 596 599 StartTime := Now; 597 600 I := 0; … … 605 608 606 609 for I := 0 to SampleCount - 1 do 607 List2.Add( 1);610 List2.Add(Pointer(1)); 608 611 StartTime := Now; 609 612 I := 0; … … 612 615 Inc(I); 613 616 until (Now - StartTime) > MeasureDuration; 614 WriteOutput('TList.IndexOf', IntToStr(I) + ' ops'); 615 Application.ProcessMessages; 616 617 WriteOutput('TFPList.IndexOf', IntToStr(I) + ' ops'); 618 Application.ProcessMessages; 619 620 for I := 0 to SampleCount - 1 do 621 List.Add(Pointer(1)); 622 StartTime := Now; 623 I := 0; 624 repeat 625 List[I mod List.Count] := Pointer(1); 626 Inc(I); 627 until (Now - StartTime) > MeasureDuration; 628 WriteOutput('TListPointer[I] write', IntToStr(I) + ' ops'); 629 List.Clear; 630 Application.ProcessMessages; 631 632 for I := 0 to SampleCount - 1 do 633 List2.Add(Pointer(1)); 634 StartTime := Now; 635 I := 0; 636 repeat 637 List2[I mod List2.Count] := Pointer(1); 638 Inc(I); 639 until (Now - StartTime) > MeasureDuration; 640 WriteOutput('TFPList[I] write', IntToStr(I) + ' ops'); 641 Application.ProcessMessages; 642 643 for I := 0 to SampleCount - 1 do 644 List.Add(Pointer(1)); 645 StartTime := Now; 646 I := 0; 647 repeat 648 List[I mod List.Count]; 649 Inc(I); 650 until (Now - StartTime) > MeasureDuration; 651 WriteOutput('TListPointer[I] read', IntToStr(I) + ' ops'); 652 List.Clear; 653 Application.ProcessMessages; 654 655 for I := 0 to SampleCount - 1 do 656 List2.Add(Pointer(1)); 657 StartTime := Now; 658 I := 0; 659 repeat 660 List2[I mod List2.Count]; 661 Inc(I); 662 until (Now - StartTime) > MeasureDuration; 663 WriteOutput('TFPList[I] read', IntToStr(I) + ' ops'); 664 Application.ProcessMessages; 617 665 finally 618 666 UpdateButtonState(True); -
Generics/TemplateGenerics/Generic/GenericList.inc
r175 r219 25 25 procedure QuickSort(L, R : TGListIndex; Compare: TGListSortCompare); 26 26 public 27 function CompareMem(P1, P2: Pointer; Length: cardinal): Boolean; inline; 27 28 function Add(Item: TGListItem): TGListIndex; 28 29 procedure AddArray(Values: array of TGListItem); … … 208 209 end; 209 210 211 function TGList.CompareMem(P1, P2: Pointer; Length: cardinal): Boolean; 212 var 213 I: Cardinal; 214 begin 215 Result := True; 216 I := 0; 217 if (P1) <> (P2) then 218 while Result and (I < Length) do 219 begin 220 Result := PByte(P1)^ = PByte(P2)^; 221 Inc(I); 222 Inc(pchar(P1)); 223 Inc(pchar(P2)); 224 end; 225 end; 226 210 227 function TGList.IndexOf(Item: TGListItem; Start: TGListIndex): TGListIndex; 211 228 begin 212 229 Result := Start; 213 230 while (Result < FCount) and 214 not CompareMem(Addr(FItems[Result]), Addr(Item), SizeOf(TGListItem)) do 231 not CompareMem(@FItems[Result], @Item, SizeOf(TGListItem)) do 232 // not (CompareByte(FItems[Result], Item, SizeOf(TGListItem)) = 0) do 215 233 Result := Result + 1; 216 234 if Result = FCount then Result := -1; -
Generics/TemplateGenerics/TemplateGenerics.lpk
r196 r219 13 13 <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 14 14 </SearchPaths> 15 <CodeGeneration> 16 <Optimizations> 17 <VariablesInRegisters Value="True"/> 18 <OptimizationLevel Value="3"/> 19 </Optimizations> 20 </CodeGeneration> 15 21 <Other> 22 <CompilerMessages> 23 <UseMsgFile Value="True"/> 24 </CompilerMessages> 16 25 <CompilerPath Value="$(CompPath)"/> 17 26 </Other> … … 66 75 <Item12> 67 76 <Filename Value="Generic\GenericBitmap.inc"/> 77 <UnitName Value="GenericBitmap"/> 68 78 </Item12> 69 79 <Item13>
Note:
See TracChangeset
for help on using the changeset viewer.