Browse Source

* SafeCreateArray fixed

florian 20 years ago
parent
commit
78197f9914
1 changed files with 27 additions and 26 deletions
  1. 27 26
      rtl/objpas/varutils.inc

+ 27 - 26
rtl/objpas/varutils.inc

@@ -350,34 +350,32 @@ Const
      ARR_NONE,ARR_NONE,ARR_NONE,ARR_NONE);
 
 Function SafeArrayCreate(VarType, Dim: SizeInt; const Bounds: TVarArrayBoundArray): PVarArray;stdcall;
-var
-  res : HRESULT;
-  I   : SizeInt;
-begin
-  Result:=nil;
-  if Not (VarType in Supportedpsas) Then
-    exit;
-  Res:=SafeArrayAllocDescriptor(Dim, Result);
-  if Res<>VAR_OK then
-    exit;
-  With Result^ do
-    begin
-    DimCount:=Dim;
-    Flags:=psaElementFlags[VarType];
-    ElementSize:=psaElementSizes[VarType];
+  var
+    res : HRESULT;
+    I   : SizeInt;
+  begin
+    Result:=nil;
+    if Not (VarType in Supportedpsas) Then
+      exit;
+    Res:=SafeArrayAllocDescriptor(Dim, Result);
+    if Res<>VAR_OK then
+      exit;
+    Result^.DimCount:=Dim;
+    Result^.Flags:=psaElementFlags[VarType];
+    Result^.ElementSize:=psaElementSizes[VarType];
     for i:=0 to Dim-1 do
       begin
-      Bounds[i].LowBound:=Bounds[Dim-I-1].LowBound;
-      Bounds[I].ElementCount:=Bounds[Dim-I-1].ElementCount;
+        Result^.Bounds[i].LowBound:=Bounds[Dim-I-1].LowBound;
+        Result^.Bounds[I].ElementCount:=Bounds[Dim-I-1].ElementCount;
       end;
-    end;
-  res:=SafeArrayAllocData(Result);
-  if res<>VAR_OK then
-    begin
-    SafeArrayDestroyDescriptor(Result);
-    Result:=nil;
-    end;
-end;
+    res:=SafeArrayAllocData(Result);
+    if res<>VAR_OK then
+      begin
+      SafeArrayDestroyDescriptor(Result);
+      Result:=nil;
+      end;
+  end;
+  
 
 Function SafeArrayAllocDescriptor(DimCount: SizeInt; var psa: PVarArray): HRESULT;stdcall;
 begin
@@ -720,7 +718,10 @@ end;
 {$endif HASVARIANT}
 {
   $Log$
-  Revision 1.23  2005-03-28 17:04:58  florian
+  Revision 1.24  2005-03-28 21:52:43  florian
+    * SafeCreateArray fixed
+
+  Revision 1.23  2005/03/28 17:04:58  florian
     * compilation on non win32 fixed
 
   Revision 1.22  2005/03/28 13:38:05  florian