Browse Source

* FieldAddress now returns immediately if name=''

sg 25 years ago
parent
commit
ed29399154
1 changed files with 22 additions and 16 deletions
  1. 22 16
      rtl/inc/objpas.inc

+ 22 - 16
rtl/inc/objpas.inc

@@ -207,26 +207,29 @@
 	   i: Integer;
 	   i: Integer;
 
 
         begin
         begin
-	   UName := UpCase(name);
-	   CurClassType := ClassType;
-	   while CurClassType <> nil do
+	   if Length(name) > 0 then
 	   begin
 	   begin
-	     FieldTable := PFieldTable((Pointer(CurClassType) + vmtFieldTable)^);
-	     if FieldTable <> nil then
+	     UName := UpCase(name);
+	     CurClassType := ClassType;
+	     while CurClassType <> nil do
 	     begin
 	     begin
-	       FieldInfo := PFieldInfo(Pointer(FieldTable) + 6);
-	       for i := 0 to FieldTable^.FieldCount - 1 do
+	       FieldTable := PFieldTable((Pointer(CurClassType) + vmtFieldTable)^);
+	       if FieldTable <> nil then
 	       begin
 	       begin
-	         if UpCase(FieldInfo^.Name) = UName then
-		 begin
-		   fieldaddress := Pointer(Self) + FieldInfo^.FieldOffset;
-	           exit;
-		 end;
-		 Inc(FieldInfo, 7 + Length(FieldInfo^.Name));
+	         FieldInfo := PFieldInfo(Pointer(FieldTable) + 6);
+	         for i := 0 to FieldTable^.FieldCount - 1 do
+	         begin
+	           if UpCase(FieldInfo^.Name) = UName then
+		   begin
+		     fieldaddress := Pointer(Self) + FieldInfo^.FieldOffset;
+	             exit;
+		   end;
+		   Inc(FieldInfo, 7 + Length(FieldInfo^.Name));
+	         end;
 	       end;
 	       end;
+	       { Try again with the parent class type }
+	       CurClassType := CurClassType.ClassParent;
 	     end;
 	     end;
-	     { Try again with the parent class type }
-	     CurClassType := CurClassType.ClassParent;
 	   end;
 	   end;
 
 
            fieldaddress:=nil;
            fieldaddress:=nil;
@@ -452,7 +455,10 @@
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.16  2000-06-29 16:32:50  sg
+  Revision 1.17  2000-07-08 07:24:24  sg
+  * FieldAddress now returns immediately if name=''
+
+  Revision 1.16  2000/06/29 16:32:50  sg
   * Implemented TObject.FieldAddress
   * Implemented TObject.FieldAddress
 
 
   Revision 1.15  2000/05/16 08:06:14  michael
   Revision 1.15  2000/05/16 08:06:14  michael