Showing the changes to libraries/script-engine/src/ArrayBufferClass.cpp (1 of 4 files). Show all
Unified · Split
| @@ -42,7 +42,7 @@ ArrayBufferClass::ArrayBufferClass(QScriptEngine* engine) : QObject(engine), QSc · 41 unmodified lines | ||
| 42 | 42 | engine->globalObject().setProperty(name(), _ctor); |
| 43 | 43 | } |
| 44 | 44 | |
| 45 | −QScriptValue ArrayBufferClass::newInstance(unsigned long size) { | |
| 45 | +QScriptValue ArrayBufferClass::newInstance(quint32 size) { | |
| 46 | 46 | engine()->reportAdditionalMemoryCost(size); |
| 47 | 47 | QScriptValue data = engine()->newVariant(QVariant::fromValue(QByteArray(size, 0))); |
| 48 | 48 | return engine()->newObject(this, data); |
| @@ -60,7 +60,12 @@ QScriptValue ArrayBufferClass::construct(QScriptContext* context, QScriptEngine* · 11 unmodified lines | ||
| 60 | 60 | } |
| 61 | 61 | |
| 62 | 62 | QScriptValue arg = context->argument(0); |
| 63 | − unsigned long size = arg.toInt32(); | |
| 63 | + | |
| 64 | + if (!arg.isValid() || !arg.isNumber()) { | |
| 65 | + return QScriptValue(); | |
| 66 | + } | |
| 67 | + | |
| 68 | + quint32 size = arg.toInt32(); | |
| 64 | 69 | QScriptValue newObject = cls->newInstance(size); |
| 65 | 70 | |
| 66 | 71 | if (context->isCalledAsConstructor()) { |