On Mon, 2015-09-28 at 12:17 -0700, scan-ad...@coverity.com wrote: caolanm->martin: 4fd693f718ac74115ea58208ac3427c01857d260 and d62dddd6345e8f1730eed1bb2b7183499a85133f are my primitive hacks to address the two new warnings mentioned below from coverity in the relatively new graphite layout code. Its probably worth having a look here (and I've sent a coverity invite if you want to use the web-ui for these) to see if everything is as it should be
C. > Hi, > > Please find the latest report on new defect(s) introduced to > LibreOffice found with Coverity Scan. > *** CID 1325060: Error handling issues (NEGATIVE_RETURNS) > /vcl/source/glyphs/graphite_layout.cxx: 742 in > GraphiteLayout::ApplyDXArray(ImplLayoutArgs &, std::vector<int, > std::allocator<int>> &)() > 736 for (int n = firstChar; n <= lastChar; ++n) > 737 if (mvCharDxs[n - mnMinCharPos] != -1) > 738 mvCharDxs[n - mnMinCharPos] += nDWidth + > nDGlyphOrigin; > 739 for (int n = i; n < nLastGlyph; n++) > 740 mvGlyphs[n].maLinearPos.X() += (nDGlyphOrigin + > nDWidth) * (bRtl ? -1 : 1); > 741 > > > > CID 1325060: Error handling issues (NEGATIVE_RETURNS) > > > > "nBaseGlyph" is passed to a parameter that cannot be > > > > negative. [Note: The source code implementation of the function > > > > has been overridden by a builtin model.] > 742 rDeltaWidth[nBaseGlyph] = nDWidth; > 743 #ifdef GRLAYOUT_DEBUG > 744 fprintf(grLog(),"c%d=%d g%d-%d dW%ld-%ld=%ld dX%ld > x%ld @%d=%d\n", firstChar, lastChar, i, nLastGlyph, nNewClusterWidth, > nOrigClusterWidth, nDWidth, nDGlyphOrigin, > mvGlyphs[i].maLinearPos.X(), mvCharDxs[lastChar - mnMinCharPos], > args.mpDXArray[lastChar - args.mnMinCharPos]); > 745 #endif > 746 i = nLastGlyph - 1; > 747 if (i >= endGi - 1) > > ** CID 1325059: (NEGATIVE_RETURNS) > /vcl/source/glyphs/graphite_layout.cxx: 693 in > GraphiteLayout::ApplyDXArray(ImplLayoutArgs &, std::vector<int, > std::allocator<int>> &)() > /vcl/source/glyphs/graphite_layout.cxx: 693 in > GraphiteLayout::ApplyDXArray(ImplLayoutArgs &, std::vector<int, > std::allocator<int>> &)() > > > _____________________________________________________________________ > ___________________________________ > *** CID 1325059: (NEGATIVE_RETURNS) > /vcl/source/glyphs/graphite_layout.cxx: 693 in > GraphiteLayout::ApplyDXArray(ImplLayoutArgs &, std::vector<int, > std::allocator<int>> &)() > 687 fprintf(grLog(),"ApplyDx %d-%d=%d-%d\n", startChar, > endChar, startGi, endGi); > 688 #endif > 689 > 690 for (int i = startGi; i < endGi; ++i) > 691 { > 692 // calculate visual cluster bounds > > > > CID 1325059: (NEGATIVE_RETURNS) > > > > "i" is passed to a parameter that cannot be negative. > > > > [Note: The source code implementation of the function has been > > > > overridden by a builtin model.] > 693 int firstChar = mvGlyph2Char[i]; > 694 int nBaseGlyph = mvChar2BaseGlyph[firstChar - > mnMinCharPos]; > 695 while (nBaseGlyph == -1 && i < endGi) > 696 { > 697 ++i; > 698 firstChar = mvGlyph2Char[i]; > /vcl/source/glyphs/graphite_layout.cxx: 693 in > GraphiteLayout::ApplyDXArray(ImplLayoutArgs &, std::vector<int, > std::allocator<int>> &)() > 687 fprintf(grLog(),"ApplyDx %d-%d=%d-%d\n", startChar, > endChar, startGi, endGi); > 688 #endif > 689 > 690 for (int i = startGi; i < endGi; ++i) > 691 { > 692 // calculate visual cluster bounds > > > > CID 1325059: (NEGATIVE_RETURNS) > > > > "i" is passed to a parameter that cannot be negative. > > > > [Note: The source code implementation of the function has been > > > > overridden by a builtin model.] > 693 int firstChar = mvGlyph2Char[i]; > 694 int nBaseGlyph = mvChar2BaseGlyph[firstChar - > mnMinCharPos]; > 695 while (nBaseGlyph == -1 && i < endGi) > 696 { > 697 ++i; > 698 firstChar = mvGlyph2Char[i]; _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice