diff options
author | reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2009-09-24 20:06:03 +0000 |
---|---|---|
committer | reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2009-09-24 20:06:03 +0000 |
commit | a8cf0aa53374337f2c133073db83c1c869b6501c (patch) | |
tree | 02c0bf0c6a4675d229addf5ae014ae247ff5b6b9 /src/utils/SkParse.cpp | |
parent | bb9aea999c29a45fcac3fdb9ecd4a45b65f603cb (diff) |
use real strtof and snprintf to parse and dump floats
git-svn-id: http://skia.googlecode.com/svn/trunk@369 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/utils/SkParse.cpp')
-rw-r--r-- | src/utils/SkParse.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/utils/SkParse.cpp b/src/utils/SkParse.cpp index e7402801a6..df6691092b 100644 --- a/src/utils/SkParse.cpp +++ b/src/utils/SkParse.cpp @@ -206,11 +206,20 @@ const char* SkParse::FindMSec(const char str[], SkMSec* value) return str; } -const char* SkParse::FindScalar(const char str[], SkScalar* value) -{ +const char* SkParse::FindScalar(const char str[], SkScalar* value) { SkASSERT(str); str = skip_ws(str); - +#ifdef SK_SCALAR_IS_FLOAT + char* stop; + float v = ::strtof(str, &stop); + if (str == stop) { + return NULL; + } + if (value) { + *value = v; + } + return stop; +#else int sign = 0; if (*str == '-') { @@ -251,6 +260,7 @@ const char* SkParse::FindScalar(const char str[], SkScalar* value) n = (n ^ sign) - sign; // apply the sign *value = SkFixedToScalar(n); } +#endif return str; } |