Hermès Bélusca-Maï =?UTF-8?Q?to=20?=: usp10 : Avoid non-standard array initialization.

Alexandre Julliard julliard at winehq.org
Tue Mar 25 14:27:44 CDT 2014


Module: wine
Branch: master
Commit: 8fb52c7c5d711918fadf2590061d668093d14708
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8fb52c7c5d711918fadf2590061d668093d14708

Author: Hermès Bélusca-Maïto <hermes.belusca at sfr.fr>
Date:   Tue Mar 25 14:31:16 2014 +0100

usp10: Avoid non-standard array initialization.

---

 dlls/usp10/bidi.c |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/dlls/usp10/bidi.c b/dlls/usp10/bidi.c
index ceb498e..3962671 100644
--- a/dlls/usp10/bidi.c
+++ b/dlls/usp10/bidi.c
@@ -827,10 +827,13 @@ static void resolveResolved(unsigned baselevel, const WORD * pcls, WORD *plevel,
 static void computeIsolatingRunsSet(unsigned baselevel, WORD *pcls, WORD *pLevel, int uCount, struct list *set)
 {
     int run_start, run_end, i;
-    Run runs[uCount];
     int run_count = 0;
+    Run *runs;
     IsolatedRun *current_isolated;
 
+    runs = HeapAlloc(GetProcessHeap(), 0, uCount * sizeof(Run));
+    if (!runs) return;
+
     list_init(set);
 
     /* Build Runs */
@@ -857,6 +860,7 @@ static void computeIsolatingRunsSet(unsigned baselevel, WORD *pcls, WORD *pLevel
             int type_fence, real_end;
             int j;
             current_isolated = HeapAlloc(GetProcessHeap(), 0, sizeof(IsolatedRun) + sizeof(WORD*)*uCount);
+            if (!current_isolated) break;
 
             run_start = runs[k].start;
             current_isolated->e = runs[k].e;
@@ -944,6 +948,8 @@ search:
         }
         i++;
     }
+
+    HeapFree(GetProcessHeap(), 0, runs);
 }
 
 /*************************************************************




More information about the wine-cvs mailing list