Nikolay Sivov : dwrite: Remove separate line count layout field.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jul 6 06:37:36 CDT 2015


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Mon Jul  6 09:04:43 2015 +0300

dwrite: Remove separate line count layout field.

---

 dlls/dwrite/layout.c | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c
index 980eff5..693f046 100644
--- a/dlls/dwrite/layout.c
+++ b/dlls/dwrite/layout.c
@@ -243,7 +243,6 @@ struct dwrite_textlayout {
     FLOAT  minwidth;
 
     DWRITE_LINE_METRICS *lines;
-    UINT32 line_count;
     UINT32 line_alloc;
 
     DWRITE_TEXT_METRICS1 metrics;
@@ -1028,7 +1027,7 @@ static HRESULT layout_set_line_metrics(struct dwrite_textlayout *layout, DWRITE_
             return E_OUTOFMEMORY;
     }
 
-    if (layout->line_count == layout->line_alloc) {
+    if (layout->metrics.lineCount == layout->line_alloc) {
         DWRITE_LINE_METRICS *l = heap_realloc(layout->lines, layout->line_alloc*2*sizeof(*layout->lines));
         if (!l)
             return E_OUTOFMEMORY;
@@ -1037,7 +1036,7 @@ static HRESULT layout_set_line_metrics(struct dwrite_textlayout *layout, DWRITE_
     }
 
     layout->lines[*line] = *metrics;
-    layout->line_count += 1;
+    layout->metrics.lineCount += 1;
     *line += 1;
     return S_OK;
 }
@@ -1094,7 +1093,7 @@ static HRESULT layout_compute_effective_runs(struct dwrite_textlayout *layout)
     if (FAILED(hr))
         return hr;
 
-    layout->line_count = 0;
+    layout->metrics.lineCount = 0;
     origin_x = 0.0;
     line = 0;
     run = layout->clusters[0].run;
@@ -1214,7 +1213,6 @@ static HRESULT layout_compute_effective_runs(struct dwrite_textlayout *layout)
 
     layout->metrics.left = layout->metrics.top = 0.0;
     layout->metrics.maxBidiReorderingDepth = 1; /* FIXME */
-    layout->metrics.lineCount = layout->line_count;
     layout->metrics.height = 0.0;
 
     /* Now all line info is here, update effective runs positions in flow direction */
@@ -1222,7 +1220,7 @@ static HRESULT layout_compute_effective_runs(struct dwrite_textlayout *layout)
     inrun = layout_get_next_inline_run(layout, NULL);
 
     origin_y = 0.0;
-    for (line = 0; line < layout->line_count; line++) {
+    for (line = 0; line < layout->metrics.lineCount; line++) {
 
         origin_y += layout->lines[line].baseline;
 
@@ -2599,10 +2597,10 @@ static HRESULT WINAPI dwritetextlayout_GetLineMetrics(IDWriteTextLayout2 *iface,
         return hr;
 
     if (metrics)
-        memcpy(metrics, This->lines, sizeof(DWRITE_LINE_METRICS)*min(max_count, This->line_count));
+        memcpy(metrics, This->lines, sizeof(*metrics)*min(max_count, This->metrics.lineCount));
 
-    *count = This->line_count;
-    return max_count >= This->line_count ? S_OK : E_NOT_SUFFICIENT_BUFFER;
+    *count = This->metrics.lineCount;
+    return max_count >= This->metrics.lineCount ? S_OK : E_NOT_SUFFICIENT_BUFFER;
 }
 
 static HRESULT WINAPI dwritetextlayout_GetMetrics(IDWriteTextLayout2 *iface, DWRITE_TEXT_METRICS *metrics)
@@ -3556,7 +3554,6 @@ static HRESULT init_textlayout(const WCHAR *str, UINT32 len, IDWriteTextFormat *
     layout->clustermetrics = NULL;
     layout->clusters = NULL;
     layout->lines = NULL;
-    layout->line_count = 0;
     layout->line_alloc = 0;
     layout->minwidth = 0.0;
     list_init(&layout->eruns);




More information about the wine-cvs mailing list