[Libreoffice-commits] core.git: vcl/inc vcl/source
Stephan Bergmann
sbergman at redhat.com
Tue May 10 13:23:55 UTC 2016
vcl/inc/graphite_features.hxx | 2
vcl/source/glyphs/graphite_features.cxx | 99 ++++++++++++++------------------
2 files changed, 46 insertions(+), 55 deletions(-)
New commits:
commit a0d546cdcad435bdabd007b4921043716be6e2b5
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue May 10 15:21:08 2016 +0200
mbErrors is never read
In the original 5624be5a3520a16d57724064e16df3722d728010 "CWS-TOOLING: integrate
CWS graphite01" it used to be read in debug-only code that meanwhile got
removed.
(And getIntValue can now be a non-member function, as noted by
loplugin:staticmethods.)
Change-Id: I758268064181d44c90f5c4d1841fb09f4c532669
diff --git a/vcl/inc/graphite_features.hxx b/vcl/inc/graphite_features.hxx
index 97bd186..1ce5cb0 100644
--- a/vcl/inc/graphite_features.hxx
+++ b/vcl/inc/graphite_features.hxx
@@ -54,10 +54,8 @@ namespace grutils
void setLang(const gr_face * face, const OString & lang);
static bool isCharId(const OString & id, size_t offset, size_t length);
static gr_uint32 getCharId(const OString & id, size_t offset, size_t length);
- short getIntValue(const OString & id, size_t offset, size_t length);
size_t mnNumSettings;
FeatId maLang;
- bool mbErrors;
sal_uInt32 mnHash;
gr_feature_val * mpSettings;
};
diff --git a/vcl/source/glyphs/graphite_features.cxx b/vcl/source/glyphs/graphite_features.cxx
index b212fef..fab008c 100644
--- a/vcl/source/glyphs/graphite_features.cxx
+++ b/vcl/source/glyphs/graphite_features.cxx
@@ -32,20 +32,62 @@
#include <graphite_features.hxx>
using namespace grutils;
+
+namespace {
+
+short getIntValue(const OString & id, size_t offset, size_t length)
+{
+ short value = 0;
+ int sign = 1;
+ for (size_t i = 0; i < length; i++)
+ {
+ switch (id[offset + i])
+ {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ value *= 10;
+ if (sign < 0)
+ {
+ value = -(id[offset + i] - '0');
+ sign = 1;
+ }
+ value += (id[offset + i] - '0');
+ break;
+ case '-':
+ if (i == 0)
+ sign = -1;
+ break;
+ default:
+ break;
+ }
+ }
+ return value;
+}
+
+}
+
// These mustn't conflict with font name lists which use ; and ,
const char GrFeatureParser::FEAT_PREFIX = ':';
const char GrFeatureParser::FEAT_SEPARATOR = '&';
const char GrFeatureParser::FEAT_ID_VALUE_SEPARATOR = '=';
GrFeatureParser::GrFeatureParser(const gr_face * pFace, const OString& lang)
- : mnNumSettings(0), mbErrors(false), mpSettings(nullptr)
+ : mnNumSettings(0), mpSettings(nullptr)
{
maLang.label[0] = maLang.label[1] = maLang.label[2] = maLang.label[3] = '\0';
setLang(pFace, lang);
}
GrFeatureParser::GrFeatureParser(const gr_face * pFace, const OString& features, const OString& lang)
- : mnNumSettings(0), mbErrors(false), mpSettings(nullptr)
+ : mnNumSettings(0), mpSettings(nullptr)
{
sal_Int32 nEquals = 0;
sal_Int32 nFeatEnd = 0;
@@ -57,7 +99,6 @@ GrFeatureParser::GrFeatureParser(const gr_face * pFace, const OString& features,
nEquals = features.indexOf(FEAT_ID_VALUE_SEPARATOR, pos);
if (nEquals == -1)
{
- mbErrors = true;
break;
}
// check for a lang=xxx specification
@@ -70,9 +111,7 @@ GrFeatureParser::GrFeatureParser(const gr_face * pFace, const OString& features,
{
nFeatEnd = features.getLength();
}
- if (nFeatEnd - pos > 3)
- mbErrors = true;
- else
+ if (nFeatEnd - pos <= 3)
{
FeatId aLang = maLang;
aLang.num = 0;
@@ -105,8 +144,7 @@ GrFeatureParser::GrFeatureParser(const gr_face * pFace, const OString& features,
break;
}
}
- if (i == gr_face_n_languages(pFace)) mbErrors = true;
- else
+ if (i != gr_face_n_languages(pFace))
{
mnHash = maLang.num;
mpSettings = gr_face_featureval_for_lang(pFace, maLang.num);
@@ -138,8 +176,6 @@ GrFeatureParser::GrFeatureParser(const gr_face * pFace, const OString& features,
mnHash = (mnHash << 16) ^ ((featId << 8) | featValue);
mnNumSettings++;
}
- else
- mbErrors = true;
}
pos = nFeatEnd + 1;
}
@@ -232,47 +268,4 @@ gr_uint32 GrFeatureParser::getCharId(const OString & id, size_t offset, size_t l
return charId.num;
}
-short GrFeatureParser::getIntValue(const OString & id, size_t offset, size_t length)
-{
- short value = 0;
- int sign = 1;
- for (size_t i = 0; i < length; i++)
- {
- switch (id[offset + i])
- {
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- value *= 10;
- if (sign < 0)
- {
- value = -(id[offset + i] - '0');
- sign = 1;
- }
- value += (id[offset + i] - '0');
- break;
- case '-':
- if (i == 0)
- sign = -1;
- else
- {
- mbErrors = true;
- break;
- }
- break;
- default:
- mbErrors = true;
- break;
- }
- }
- return value;
-}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list