Showing the changes to libraries/script-engine/src/DataViewPrototype.cpp (1 of 4 files). Show all
Unified · Split
| @@ -32,10 +32,7 @@ bool DataViewPrototype::realOffset(qint32& offset, size_t size) const { · 31 unmodified lines | ||
| 32 | 32 | } |
| 33 | 33 | quint32 viewOffset = thisObject().data().property(BYTE_OFFSET_PROPERTY_NAME).toInt32(); |
| 34 | 34 | quint32 viewLength = thisObject().data().property(BYTE_LENGTH_PROPERTY_NAME).toInt32(); |
| 35 | − //qDebug() << "View Offset: " << viewOffset << ", View Lenght: " << viewLength; | |
| 36 | − //qDebug() << "Offset: " << offset << ", Size: " << size; | |
| 37 | 35 | offset += viewOffset; |
| 38 | − //qDebug() << "New offset: " << offset << ", bool: " << ((offset + size) <= viewOffset + viewLength); | |
| 39 | 36 | return (offset + size) <= viewOffset + viewLength; |
| 40 | 37 | } |
| 41 | 38 | |
| @@ -123,7 +120,7 @@ quint32 DataViewPrototype::getUint32(qint32 byteOffset, bool littleEndian) { · 81 unmodified lines | ||
| 123 | 120 | return 0; |
| 124 | 121 | } |
| 125 | 122 | |
| 126 | −float DataViewPrototype::getFloat32(qint32 byteOffset, bool littleEndian) { | |
| 123 | +QScriptValue DataViewPrototype::getFloat32(qint32 byteOffset, bool littleEndian) { | |
| 127 | 124 | if (realOffset(byteOffset, sizeof(float))) { |
| 128 | 125 | QDataStream stream(*thisArrayBuffer()); |
| 129 | 126 | stream.skipRawData(byteOffset); |
| @@ -132,14 +129,17 @@ float DataViewPrototype::getFloat32(qint32 byteOffset, bool littleEndian) { · 2 unmodified lines | ||
| 132 | 129 | |
| 133 | 130 | float result; |
| 134 | 131 | stream >> result; |
| 135 | − qDebug() << "Get: " << result; | |
| 136 | − return result; | |
| 132 | + if (isNaN(result)) { | |
| 133 | + return QScriptValue(NAN); | |
| 134 | + } | |
| 135 | + | |
| 136 | + return QScriptValue(result); | |
| 137 | 137 | } |
| 138 | 138 | thisObject().engine()->evaluate("throw \"RangeError: byteOffset out of range\""); |
| 139 | − return 0; | |
| 139 | + return QScriptValue(); | |
| 140 | 140 | } |
| 141 | 141 | |
| 142 | −double DataViewPrototype::getFloat64(qint32 byteOffset, bool littleEndian) { | |
| 142 | +QScriptValue DataViewPrototype::getFloat64(qint32 byteOffset, bool littleEndian) { | |
| 143 | 143 | if (realOffset(byteOffset, sizeof(double))) { |
| 144 | 144 | QDataStream stream(*thisArrayBuffer()); |
| 145 | 145 | stream.skipRawData(byteOffset); |
| @@ -148,10 +148,14 @@ double DataViewPrototype::getFloat64(qint32 byteOffset, bool littleEndian) { · 2 unmodified lines | ||
| 148 | 148 | |
| 149 | 149 | double result; |
| 150 | 150 | stream >> result; |
| 151 | + if (isNaN(result)) { | |
| 152 | + return QScriptValue(); | |
| 153 | + } | |
| 154 | + | |
| 151 | 155 | return result; |
| 152 | 156 | } |
| 153 | 157 | thisObject().engine()->evaluate("throw \"RangeError: byteOffset out of range\""); |
| 154 | − return 0; | |
| 158 | + return QScriptValue(); | |
| 155 | 159 | } |
| 156 | 160 | |
| 157 | 161 | ///////////////// SETTERS //////////////////////////// |