<div dir="ltr">Thanks, queued with one change<br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 26, 2015 at 2:07 AM, Min Chen <span dir="ltr"><<a href="mailto:chenm003@163.com" target="_blank">chenm003@163.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"># HG changeset patch<br>
# User Min Chen <<a href="mailto:chenm003@163.com">chenm003@163.com</a>><br>
# Date 1448483847 21600<br>
# Node ID 64aa89a464aaccfa8098b25ec0b76c3e5aa4195a<br>
# Parent  e10bc3910caa2cd61a93f68db29e44b5e18c73ea<br>
fix read uninitialize memory warning in Valgrind-3.10.0<br>
---<br>
 source/encoder/entropy.cpp |    6 +++++-<br>
 1 files changed, 5 insertions(+), 1 deletions(-)<br>
<br>
diff -r e10bc3910caa -r 64aa89a464aa source/encoder/entropy.cpp<br>
--- a/source/encoder/entropy.cpp        Tue Nov 24 10:18:25 2015 -0600<br>
+++ b/source/encoder/entropy.cpp        Wed Nov 25 14:37:27 2015 -0600<br>
@@ -1566,11 +1566,14 @@<br>
     uint8_t * const baseCtx = bIsLuma ? &m_contextState[OFF_SIG_FLAG_CTX] : &m_contextState[OFF_SIG_FLAG_CTX + NUM_SIG_FLAG_CTX_LUMA];<br>
     uint32_t c1 = 1;<br>
     int scanPosSigOff = scanPosLast - (lastScanSet << MLS_CG_SIZE) - 1;<br>
-    ALIGN_VAR_32(uint16_t, absCoeff[(1 << MLS_CG_SIZE) + 1]);   // extra 2 bytes space for AVX2 assembly<br>
+    ALIGN_VAR_32(uint16_t, absCoeff[(1 << MLS_CG_SIZE) + 1]);   // extra 2 bytes(+1) space for AVX2 assembly, +1 because (numNonZero<=1) in costCoeffNxN path<br>
     uint32_t numNonZero = 1;<br>
     unsigned long lastNZPosInCG;<br>
     unsigned long firstNZPosInCG;<br>
<br></blockquote><div><br></div><div>wrapped this under #if _DEBUG<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+    // Unnecessary, for Valgrind-3.10.0 only<br>
+    memset(absCoeff, 0, sizeof(absCoeff));<br>
+<br>
     absCoeff[0] = (uint16_t)abs(coeff[posLast]);<br>
<br>
     for (int subSet = lastScanSet; subSet >= 0; subSet--)<br>
@@ -1716,6 +1719,7 @@<br>
             {<br>
                 // maximum g_entropyBits are 18-bits and maximum of count are 16, so intermedia of sum are 22-bits<br>
                 const uint8_t *tabSigCtx = table_cnt[(log2TrSize == 2) ? 4 : (uint32_t)patternSigCtx];<br>
+                X265_CHECK(numNonZero <= 1, "numNonZero check failure");<br>
                 uint32_t sum = primitives.costCoeffNxN(g_scan4x4[codingParameters.scanType], &coeff[blkPosBase], (intptr_t)trSize, absCoeff + numNonZero, tabSigCtx, scanFlagMask, baseCtx, offset + posOffset, scanPosSigOff, subPosBase);<br>
<br>
 #if CHECKED_BUILD || _DEBUG<br>
<br>
_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><div>Deepthi Nandakumar<br></div>Engineering Manager, x265<br></div>Multicoreware, Inc<br></div></div>
</div></div>