浏览代码

* use TFPGMap from fgl instead of TFPStringHashTable from Contnrs

git-svn-id: trunk@46391 -
svenbarth 5 年之前
父节点
当前提交
7c96b255f8
共有 3 个文件被更改,包括 10 次插入7 次删除
  1. 4 1
      packages/fcl-res/src/rcparserfn.inc
  2. 1 1
      packages/fcl-res/src/rcreader.pp
  3. 5 5
      packages/fcl-res/src/yypreproc.pp

+ 4 - 1
packages/fcl-res/src/rcparserfn.inc

@@ -7,10 +7,13 @@ interface
 {$GOTO ON}
 
 uses
-  SysUtils, Classes, StrUtils, Contnrs, lexlib, yacclib, resource,
+  SysUtils, Classes, StrUtils, fgl, lexlib, yacclib, resource,
   acceleratorsresource, groupiconresource, stringtableresource,
   bitmapresource, versionresource, versiontypes, groupcursorresource;
 
+type
+  TStringHashTable = specialize TFPGMap<String, String>;
+
 function yyparse : Integer;
 
 var

+ 1 - 1
packages/fcl-res/src/rcreader.pp

@@ -100,7 +100,7 @@ begin
     rcparser.ypreproc:= typreproc.Create;
     rcparser.ypreproc.Defines.Add('RC_INVOKED', '');
     for i:= 0 to fRCDefines.Count-1 do
-      rcparser.ypreproc.Defines.Items[fRCDefines.Names[i]]:= fRCDefines.ValueFromIndex[i];
+      rcparser.ypreproc.Defines.KeyData[fRCDefines.Names[i]]:= fRCDefines.ValueFromIndex[i];
     rcparser.aktresources:= aResources;
     if rcparser.yyparse <> 0 then
       raise EReadError.Create('Parse Error');

+ 5 - 5
packages/fcl-res/src/yypreproc.pp

@@ -7,7 +7,7 @@ type
   const
     yp_maxlevels = 16;
   var
-    Defines: TFPStringHashTable;
+    Defines: TStringHashTable;
     skip  : array[0..yp_maxlevels-1] of boolean;
     cheadermode: boolean;
     level : longint;
@@ -28,7 +28,7 @@ var
 constructor typreproc.Create;
 begin
   inherited Create;
-  Defines:= TFPStringHashTable.Create;
+  Defines:= TStringHashTable.Create;
   level:= 0;
   cheadermode:= false;
   fillchar(skip,sizeof(skip),0);
@@ -65,12 +65,12 @@ end;
 
 function typreproc.isdefine(ident: string): boolean;
 begin
-  Result:= Defines.Find(ident) <> nil;
+  Result:= Defines.IndexOf(ident) >= 0;
 end;
 
 function typreproc.getdefine(ident: string): string;
 begin
-  Result:= Defines.Items[ident];
+  Result:= Defines[ident];
 end;
 
 function typreproc.useline(line: string): boolean;
@@ -134,7 +134,7 @@ begin
             Defines[arg1]:= w;
           end;
           'undef': begin
-            Defines.Delete(w);
+            Defines.Remove(w);
           end;
           'include': begin
             arg1:= yinclude.expand(w);