]> git.saurik.com Git - bison.git/blobdiff - data/glr.c
* data/glr.c (yysplitStack): A little stylistic rewrite.
[bison.git] / data / glr.c
index b82f5edee2862e56548512982c3126b26c35838e..881037705682a83b5094f8edfc25f84329f75fc8 100644 (file)
@@ -1534,18 +1534,27 @@ yysplitStack (yyGLRStack* yystackp, size_t yyk)
     {
       yyGLRState** yynewStates;
       yybool* yynewLookaheadStatuses;
-      if (! ((yystackp->yytops.yycapacity
-             <= (YYSIZEMAX / (2 * sizeof yynewStates[0])))
-            && (yynewStates =
-                (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
-                                          ((yystackp->yytops.yycapacity *= 2)
-                                           * sizeof yynewStates[0])))))
+
+      yynewStates = NULL;
+      
+      if (yystackp->yytops.yycapacity
+         > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
+       yyMemoryExhausted (yystackp);
+      yystackp->yytops.yycapacity *= 2;
+
+      yynewStates =
+       (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
+                                 (yystackp->yytops.yycapacity
+                                  * sizeof yynewStates[0]));
+      if (yynewStates == NULL)
        yyMemoryExhausted (yystackp);
       yystackp->yytops.yystates = yynewStates;
-      if (! (yynewLookaheadStatuses =
-            (yybool*) YYREALLOC (yystackp->yytops.yylookaheadStatuses,
-                                 ((yystackp->yytops.yycapacity)
-                                  * sizeof yynewLookaheadStatuses[0]))))
+
+      yynewLookaheadStatuses =
+       (yybool*) YYREALLOC (yystackp->yytops.yylookaheadStatuses,
+                            (yystackp->yytops.yycapacity
+                             * sizeof yynewLookaheadStatuses[0]));
+      if (yynewLookaheadStatuses == NULL)
        yyMemoryExhausted (yystackp);
       yystackp->yytops.yylookaheadStatuses = yynewLookaheadStatuses;
     }