Browse Source

* Use two parameter get_caller_frame function to get correct result on mips

git-svn-id: trunk@21887 -
pierre 13 years ago
parent
commit
324c5ad29d
1 changed files with 6 additions and 3 deletions
  1. 6 3
      rtl/inc/objects.pp

+ 6 - 3
rtl/inc/objects.pp

@@ -1906,7 +1906,8 @@ VAR I: LongInt;
 BEGIN
 BEGIN
    For I := Count DownTo 1 Do
    For I := Count DownTo 1 Do
      Begin                   { Down from last item }
      Begin                   { Down from last item }
-       IF Boolean(Byte(ptruint(CallPointerLocal(Test,get_caller_frame(get_frame),Items^[I-1])))) THEN
+       IF Boolean(Byte(ptruint(CallPointerLocal(Test,get_caller_frame(
+               get_frame,get_pc_addr),Items^[I-1])))) THEN
        Begin          { Test each item }
        Begin          { Test each item }
          LastThat := Items^[I-1];                     { Return item }
          LastThat := Items^[I-1];                     { Return item }
          Exit;                                        { Now exit }
          Exit;                                        { Now exit }
@@ -1923,7 +1924,8 @@ FUNCTION TCollection.FirstThat (Test: Pointer): Pointer;
 VAR I: LongInt;
 VAR I: LongInt;
 BEGIN
 BEGIN
    For I := 1 To Count Do Begin                       { Up from first item }
    For I := 1 To Count Do Begin                       { Up from first item }
-     IF Boolean(Byte(ptruint(CallPointerLocal(Test,get_caller_frame(get_frame),Items^[I-1])))) THEN
+     IF Boolean(Byte(ptruint(CallPointerLocal(Test,get_caller_frame(
+             get_frame,get_pc_addr),Items^[I-1])))) THEN
        Begin          { Test each item }
        Begin          { Test each item }
        FirstThat := Items^[I-1];                      { Return item }
        FirstThat := Items^[I-1];                      { Return item }
        Exit;                                          { Now exit }
        Exit;                                          { Now exit }
@@ -2042,7 +2044,8 @@ PROCEDURE TCollection.ForEach (Action: Pointer);
 VAR I: LongInt;
 VAR I: LongInt;
 BEGIN
 BEGIN
    For I := 1 To Count Do                             { Up from first item }
    For I := 1 To Count Do                             { Up from first item }
-    CallPointerLocal(Action,get_caller_frame(get_frame),Items^[I-1]);   { Call with each item }
+    CallPointerLocal(Action,get_caller_frame(
+            get_frame,get_pc_addr),Items^[I-1]);   { Call with each item }
 END;
 END;
 {$POP}
 {$POP}