summaryrefslogtreecommitdiffstats
path: root/src/corelib/json
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2012-09-24 01:34:01 +0400
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-09-24 21:27:51 +0200
commit855018ac555125aec32a580ea4c6374e77398bc1 (patch)
tree6f8174e02cdca319abe115483ee8c01c5ff325bd /src/corelib/json
parent609d2eebe8b81524a0fa7e3d06625e63ed410a77 (diff)
Fixed QJsonDocument::fromBinaryData on big endian platforms.
Change-Id: I1786b6222867c8780f6768e5220e7ddff952b28e Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/corelib/json')
-rw-r--r--src/corelib/json/qjson.cpp4
-rw-r--r--src/corelib/json/qjson_p.h4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/corelib/json/qjson.cpp b/src/corelib/json/qjson.cpp
index 98be592ffa..100a8dc15e 100644
--- a/src/corelib/json/qjson.cpp
+++ b/src/corelib/json/qjson.cpp
@@ -278,9 +278,9 @@ int Value::usedStorage(const Base *b) const
case QJsonValue::String: {
char *d = data(b);
if (latinOrIntValue)
- s = sizeof(ushort) + *(ushort *)d;
+ s = sizeof(ushort) + qFromLittleEndian(*(ushort *)d);
else
- s = sizeof(int) + sizeof(ushort)*(*(int *)d);
+ s = sizeof(int) + sizeof(ushort) * qFromLittleEndian(*(int *)d);
break;
}
case QJsonValue::Array:
diff --git a/src/corelib/json/qjson_p.h b/src/corelib/json/qjson_p.h
index ff57dad2f0..23827a136e 100644
--- a/src/corelib/json/qjson_p.h
+++ b/src/corelib/json/qjson_p.h
@@ -590,9 +590,9 @@ public:
int size() const {
int s = sizeof(Entry);
if (value.latinKey)
- s += sizeof(ushort) + *(ushort *) ((const char *)this + sizeof(Entry));
+ s += sizeof(ushort) + qFromLittleEndian(*(ushort *) ((const char *)this + sizeof(Entry)));
else
- s += sizeof(uint) + *(int *) ((const char *)this + sizeof(Entry));
+ s += sizeof(uint) + qFromLittleEndian(*(int *) ((const char *)this + sizeof(Entry)));
return alignedSize(s);
}