]> granicus.if.org Git - php/commitdiff
Ensure pointer alignment.
authorDmitry Stogov <dmitry@zend.com>
Mon, 6 Mar 2017 14:09:05 +0000 (17:09 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 7 Mar 2017 06:48:18 +0000 (09:48 +0300)
ext/opcache/Optimizer/zend_worklist.h

index 332dbdeefc86c56b93136a1e3afab1e41d46cfd4..73c0bca854b43995e4b4d545a61a7053a270668f 100644 (file)
@@ -77,10 +77,10 @@ typedef struct _zend_worklist {
 } zend_worklist;
 
 #define ZEND_WORKLIST_ALLOCA(w, _len, use_heap) do { \
-               (w)->stack.buf = (int*)do_alloca(sizeof(int) * _len + sizeof(zend_ulong) * zend_bitset_len(_len), use_heap); \
+               (w)->stack.buf = (int*)do_alloca(ZEND_MM_ALIGNED_SIZE(sizeof(int) * _len) + sizeof(zend_ulong) * zend_bitset_len(_len), use_heap); \
                (w)->stack.len = 0; \
                (w)->stack.capacity = _len; \
-               (w)->visited = (zend_bitset)((w)->stack.buf + _len); \
+               (w)->visited = (zend_bitset)((char*)(w)->stack.buf + ZEND_MM_ALIGNED_SIZE(sizeof(int) * _len)); \
                memset((w)->visited, 0, sizeof(zend_ulong) * zend_bitset_len(_len)); \
        } while (0)