summaryrefslogtreecommitdiffstats
path: root/examples/script
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@trolltech.com>2010-03-25 19:27:05 (GMT)
committerOlivier Goffart <ogoffart@trolltech.com>2010-03-25 19:27:05 (GMT)
commit986873b239f15df43a3ebbc88a38f8ff8d6d07bf (patch)
tree946f585f390d3abb835a3280bbdc6bc90724977c /examples/script
parentb7f48eee301e973fcfae08dfd8997538b6dbe251 (diff)
parent3671dbf34940e166b747b6f8f3f5758fd486073c (diff)
downloadQt-986873b239f15df43a3ebbc88a38f8ff8d6d07bf.zip
Qt-986873b239f15df43a3ebbc88a38f8ff8d6d07bf.tar.gz
Qt-986873b239f15df43a3ebbc88a38f8ff8d6d07bf.tar.bz2
Merge remote branch 'origin/4.7' into 4.7
Conflicts: tools/qdoc3/generator.cpp tools/qdoc3/node.cpp
Diffstat (limited to 'examples/script')
-rw-r--r--examples/script/customclass/bytearrayclass.cpp17
-rw-r--r--examples/script/customclass/bytearrayclass.h2
2 files changed, 17 insertions, 2 deletions
diff --git a/examples/script/customclass/bytearrayclass.cpp b/examples/script/customclass/bytearrayclass.cpp
index 1dbf2d4..239b4b4 100644
--- a/examples/script/customclass/bytearrayclass.cpp
+++ b/examples/script/customclass/bytearrayclass.cpp
@@ -148,13 +148,13 @@ void ByteArrayClass::setProperty(QScriptValue &object,
if (!ba)
return;
if (name == length) {
- ba->resize(value.toInt32());
+ resize(*ba, value.toInt32());
} else {
qint32 pos = id;
if (pos < 0)
return;
if (ba->size() <= pos)
- ba->resize(pos + 1);
+ resize(*ba, pos + 1);
(*ba)[pos] = char(value.toInt32());
}
}
@@ -194,10 +194,13 @@ QScriptValue ByteArrayClass::constructor()
return ctor;
}
+//! [10]
QScriptValue ByteArrayClass::newInstance(int size)
{
+ engine()->reportAdditionalMemoryCost(size);
return newInstance(QByteArray(size, /*ch=*/0));
}
+//! [10]
//! [1]
QScriptValue ByteArrayClass::newInstance(const QByteArray &ba)
@@ -235,6 +238,16 @@ void ByteArrayClass::fromScriptValue(const QScriptValue &obj, QByteArray &ba)
ba = qvariant_cast<QByteArray>(obj.data().toVariant());
}
+//! [9]
+void ByteArrayClass::resize(QByteArray &ba, int newSize)
+{
+ int oldSize = ba.size();
+ ba.resize(newSize);
+ if (newSize > oldSize)
+ engine()->reportAdditionalMemoryCost(newSize - oldSize);
+}
+//! [9]
+
ByteArrayClassPropertyIterator::ByteArrayClassPropertyIterator(const QScriptValue &object)
diff --git a/examples/script/customclass/bytearrayclass.h b/examples/script/customclass/bytearrayclass.h
index f185754..3f7ce22 100644
--- a/examples/script/customclass/bytearrayclass.h
+++ b/examples/script/customclass/bytearrayclass.h
@@ -82,6 +82,8 @@ private:
static QScriptValue toScriptValue(QScriptEngine *eng, const QByteArray &ba);
static void fromScriptValue(const QScriptValue &obj, QByteArray &ba);
+ void resize(QByteArray &ba, int newSize);
+
QScriptString length;
QScriptValue proto;
QScriptValue ctor;