Deprecate qMemCopy/qMemSet in favour of their stdlib equivilents.
Just like qMalloc/qRealloc/qFree, there is absolutely no reason to wrap these functions just to avoid an include, except to pay for it with worse runtime performance. On OS X, on byte sizes from 50 up to 1000, calling memset directly is 28-15% faster(!) than adding an additional call to qMemSet. The advantage on sizes above that is unmeasurable. For qMemCopy, the benefits are a little more modest: 16-7%. Change-Id: I98aa92bb765aea0448e3f20af42a039b369af0b3 Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com> Reviewed-by: John Brooks <john.brooks@dereferenced.net> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
This commit is contained in:
parent
5dc506ad84
commit
7be255156f
@ -79,7 +79,7 @@ template <typename T> inline void qbswap(const T src, uchar *dest)
|
|||||||
// If you want to avoid the memcopy, you must write specializations for this function
|
// If you want to avoid the memcopy, you must write specializations for this function
|
||||||
template <typename T> inline void qToUnaligned(const T src, uchar *dest)
|
template <typename T> inline void qToUnaligned(const T src, uchar *dest)
|
||||||
{
|
{
|
||||||
qMemCopy(dest, &src, sizeof(T));
|
memcpy(dest, &src, sizeof(T));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* T qFromLittleEndian(const uchar *src)
|
/* T qFromLittleEndian(const uchar *src)
|
||||||
|
@ -1964,13 +1964,6 @@ Q_CORE_EXPORT unsigned int qt_int_sqrt(unsigned int n)
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(qMemCopy)
|
|
||||||
# undef qMemCopy
|
|
||||||
#endif
|
|
||||||
#if defined(qMemSet)
|
|
||||||
# undef qMemSet
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void *qMemCopy(void *dest, const void *src, size_t n) { return memcpy(dest, src, n); }
|
void *qMemCopy(void *dest, const void *src, size_t n) { return memcpy(dest, src, n); }
|
||||||
void *qMemSet(void *dest, int c, size_t n) { return memset(dest, c, n); }
|
void *qMemSet(void *dest, int c, size_t n) { return memset(dest, c, n); }
|
||||||
|
|
||||||
|
@ -1189,12 +1189,12 @@ inline void qSwap(T &value1, T &value2)
|
|||||||
Q_CORE_EXPORT QT_DEPRECATED void *qMalloc(size_t size) Q_ALLOC_SIZE(1);
|
Q_CORE_EXPORT QT_DEPRECATED void *qMalloc(size_t size) Q_ALLOC_SIZE(1);
|
||||||
Q_CORE_EXPORT QT_DEPRECATED void qFree(void *ptr);
|
Q_CORE_EXPORT QT_DEPRECATED void qFree(void *ptr);
|
||||||
Q_CORE_EXPORT QT_DEPRECATED void *qRealloc(void *ptr, size_t size) Q_ALLOC_SIZE(2);
|
Q_CORE_EXPORT QT_DEPRECATED void *qRealloc(void *ptr, size_t size) Q_ALLOC_SIZE(2);
|
||||||
|
Q_CORE_EXPORT QT_DEPRECATED void *qMemCopy(void *dest, const void *src, size_t n);
|
||||||
|
Q_CORE_EXPORT QT_DEPRECATED void *qMemSet(void *dest, int c, size_t n);
|
||||||
#endif
|
#endif
|
||||||
Q_CORE_EXPORT void *qMallocAligned(size_t size, size_t alignment) Q_ALLOC_SIZE(1);
|
Q_CORE_EXPORT void *qMallocAligned(size_t size, size_t alignment) Q_ALLOC_SIZE(1);
|
||||||
Q_CORE_EXPORT void *qReallocAligned(void *ptr, size_t size, size_t oldsize, size_t alignment) Q_ALLOC_SIZE(2);
|
Q_CORE_EXPORT void *qReallocAligned(void *ptr, size_t size, size_t oldsize, size_t alignment) Q_ALLOC_SIZE(2);
|
||||||
Q_CORE_EXPORT void qFreeAligned(void *ptr);
|
Q_CORE_EXPORT void qFreeAligned(void *ptr);
|
||||||
Q_CORE_EXPORT void *qMemCopy(void *dest, const void *src, size_t n);
|
|
||||||
Q_CORE_EXPORT void *qMemSet(void *dest, int c, size_t n);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1388,14 +1388,6 @@ inline const QForeachContainer<T> *qForeachContainer(const QForeachContainerBase
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* tell gcc to use its built-in methods for some common functions */
|
|
||||||
#if defined(QT_NO_DEBUG) && defined(Q_CC_GNU)
|
|
||||||
# define qMemCopy __builtin_memcpy
|
|
||||||
# define qMemSet __builtin_memset
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
template <typename T> static inline T *qGetPtrHelper(T *ptr) { return ptr; }
|
template <typename T> static inline T *qGetPtrHelper(T *ptr) { return ptr; }
|
||||||
template <typename Wrapper> static inline typename Wrapper::pointer qGetPtrHelper(const Wrapper &p) { return p.data(); }
|
template <typename Wrapper> static inline typename Wrapper::pointer qGetPtrHelper(const Wrapper &p) { return p.data(); }
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ static inline double qt_inf()
|
|||||||
: qt_le_inf_bytes);
|
: qt_le_inf_bytes);
|
||||||
|
|
||||||
union { unsigned char c[8]; double d; } returnValue;
|
union { unsigned char c[8]; double d; } returnValue;
|
||||||
qMemCopy(returnValue.c, bytes, sizeof(returnValue.c));
|
memcpy(returnValue.c, bytes, sizeof(returnValue.c));
|
||||||
return returnValue.d;
|
return returnValue.d;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ static inline double qt_snan()
|
|||||||
: qt_le_snan_bytes);
|
: qt_le_snan_bytes);
|
||||||
|
|
||||||
union { unsigned char c[8]; double d; } returnValue;
|
union { unsigned char c[8]; double d; } returnValue;
|
||||||
qMemCopy(returnValue.c, bytes, sizeof(returnValue.c));
|
memcpy(returnValue.c, bytes, sizeof(returnValue.c));
|
||||||
return returnValue.d;
|
return returnValue.d;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,7 +130,7 @@ static inline double qt_qnan()
|
|||||||
: qt_le_qnan_bytes);
|
: qt_le_qnan_bytes);
|
||||||
|
|
||||||
union { unsigned char c[8]; double d; } returnValue;
|
union { unsigned char c[8]; double d; } returnValue;
|
||||||
qMemCopy(returnValue.c, bytes, sizeof(returnValue.c));
|
memcpy(returnValue.c, bytes, sizeof(returnValue.c));
|
||||||
return returnValue.d;
|
return returnValue.d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1057,7 +1057,7 @@ QMetaProperty QMetaObject::property(int index) const
|
|||||||
if (colon > enum_name) {
|
if (colon > enum_name) {
|
||||||
int len = colon-enum_name-1;
|
int len = colon-enum_name-1;
|
||||||
scope_buffer = (char *)malloc(len+1);
|
scope_buffer = (char *)malloc(len+1);
|
||||||
qMemCopy(scope_buffer, enum_name, len);
|
memcpy(scope_buffer, enum_name, len);
|
||||||
scope_buffer[len] = '\0';
|
scope_buffer[len] = '\0';
|
||||||
scope_name = scope_buffer;
|
scope_name = scope_buffer;
|
||||||
enum_name = colon+1;
|
enum_name = colon+1;
|
||||||
|
@ -121,7 +121,7 @@ QByteArrayMatcher::QByteArrayMatcher()
|
|||||||
{
|
{
|
||||||
p.p = 0;
|
p.p = 0;
|
||||||
p.l = 0;
|
p.l = 0;
|
||||||
qMemSet(p.q_skiptable, 0, sizeof(p.q_skiptable));
|
memset(p.q_skiptable, 0, sizeof(p.q_skiptable));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -814,7 +814,7 @@ inline QString QString::section(QChar asep, int astart, int aend, SectionFlags a
|
|||||||
inline int QString::toWCharArray(wchar_t *array) const
|
inline int QString::toWCharArray(wchar_t *array) const
|
||||||
{
|
{
|
||||||
if (sizeof(wchar_t) == sizeof(QChar)) {
|
if (sizeof(wchar_t) == sizeof(QChar)) {
|
||||||
qMemCopy(array, d->data(), sizeof(QChar) * size());
|
memcpy(array, d->data(), sizeof(QChar) * size());
|
||||||
return size();
|
return size();
|
||||||
}
|
}
|
||||||
return toUcs4_helper(d->data(), size(), reinterpret_cast<uint *>(array));
|
return toUcs4_helper(d->data(), size(), reinterpret_cast<uint *>(array));
|
||||||
|
@ -151,7 +151,7 @@ static inline int bm_find(const ushort *uc, uint l, int index, const ushort *puc
|
|||||||
QStringMatcher::QStringMatcher()
|
QStringMatcher::QStringMatcher()
|
||||||
: d_ptr(0), q_cs(Qt::CaseSensitive)
|
: d_ptr(0), q_cs(Qt::CaseSensitive)
|
||||||
{
|
{
|
||||||
qMemSet(q_data, 0, sizeof(q_data));
|
memset(q_data, 0, sizeof(q_data));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -230,7 +230,7 @@ Q_OUTOFLINE_TEMPLATE void QVarLengthArray<T, Prealloc>::append(const T *abuf, in
|
|||||||
while (s < asize)
|
while (s < asize)
|
||||||
new (ptr+(s++)) T(*abuf++);
|
new (ptr+(s++)) T(*abuf++);
|
||||||
} else {
|
} else {
|
||||||
qMemCopy(&ptr[s], abuf, increment * sizeof(T));
|
memcpy(&ptr[s], abuf, increment * sizeof(T));
|
||||||
s = asize;
|
s = asize;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -268,7 +268,7 @@ Q_OUTOFLINE_TEMPLATE void QVarLengthArray<T, Prealloc>::realloc(int asize, int a
|
|||||||
QT_RETHROW;
|
QT_RETHROW;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
qMemCopy(ptr, oldPtr, copySize * sizeof(T));
|
memcpy(ptr, oldPtr, copySize * sizeof(T));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ptr = oldPtr;
|
ptr = oldPtr;
|
||||||
|
@ -418,7 +418,7 @@ QVector<T>::QVector(int asize)
|
|||||||
while (i != b)
|
while (i != b)
|
||||||
new (--i) T;
|
new (--i) T;
|
||||||
} else {
|
} else {
|
||||||
qMemSet(d->begin(), 0, asize * sizeof(T));
|
memset(d->begin(), 0, asize * sizeof(T));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -546,7 +546,7 @@ void QVector<T>::realloc(int asize, int aalloc)
|
|||||||
|
|
||||||
} else if (asize > x->size) {
|
} else if (asize > x->size) {
|
||||||
// initialize newly allocated memory to 0
|
// initialize newly allocated memory to 0
|
||||||
qMemSet(x->end(), 0, (asize - x->size) * sizeof(T));
|
memset(x->end(), 0, (asize - x->size) * sizeof(T));
|
||||||
}
|
}
|
||||||
x->size = asize;
|
x->size = asize;
|
||||||
|
|
||||||
|
@ -51,6 +51,8 @@
|
|||||||
#include <QtGui/qcolor.h>
|
#include <QtGui/qcolor.h>
|
||||||
#include <QtGui/qevent.h>
|
#include <QtGui/qevent.h>
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
QT_BEGIN_HEADER
|
QT_BEGIN_HEADER
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
@ -216,7 +218,7 @@ public:
|
|||||||
// quint64 alertHigh : 1;
|
// quint64 alertHigh : 1;
|
||||||
|
|
||||||
State() {
|
State() {
|
||||||
qMemSet(this, 0, sizeof(State));
|
memset(this, 0, sizeof(State));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -184,7 +184,7 @@ void CALLBACK_CALL_TYPE iod_read_fn(png_structp png_ptr, png_bytep data, png_siz
|
|||||||
if (d->state == QPngHandlerPrivate::ReadingEnd && !in->isSequential() && (in->size() - in->pos()) < 4 && length == 4) {
|
if (d->state == QPngHandlerPrivate::ReadingEnd && !in->isSequential() && (in->size() - in->pos()) < 4 && length == 4) {
|
||||||
// Workaround for certain malformed PNGs that lack the final crc bytes
|
// Workaround for certain malformed PNGs that lack the final crc bytes
|
||||||
uchar endcrc[4] = { 0xae, 0x42, 0x60, 0x82 };
|
uchar endcrc[4] = { 0xae, 0x42, 0x60, 0x82 };
|
||||||
qMemCopy(data, endcrc, 4);
|
memcpy(data, endcrc, 4);
|
||||||
in->seek(in->size());
|
in->seek(in->size());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -664,7 +664,7 @@ static void set_text(const QImage &image, png_structp png_ptr, png_infop info_pt
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
png_textp text_ptr = new png_text[text.size()];
|
png_textp text_ptr = new png_text[text.size()];
|
||||||
qMemSet(text_ptr, 0, text.size() * sizeof(png_text));
|
memset(text_ptr, 0, text.size() * sizeof(png_text));
|
||||||
|
|
||||||
QMap<QString, QString>::ConstIterator it = text.constBegin();
|
QMap<QString, QString>::ConstIterator it = text.constBegin();
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
@ -5594,9 +5594,9 @@ void QPainterPrivate::drawGlyphs(const quint32 *glyphArray, QFixedPoint *positio
|
|||||||
QVarLengthArray<QFixed, 128> advances(glyphCount);
|
QVarLengthArray<QFixed, 128> advances(glyphCount);
|
||||||
QVarLengthArray<QGlyphJustification, 128> glyphJustifications(glyphCount);
|
QVarLengthArray<QGlyphJustification, 128> glyphJustifications(glyphCount);
|
||||||
QVarLengthArray<HB_GlyphAttributes, 128> glyphAttributes(glyphCount);
|
QVarLengthArray<HB_GlyphAttributes, 128> glyphAttributes(glyphCount);
|
||||||
qMemSet(glyphAttributes.data(), 0, glyphAttributes.size() * sizeof(HB_GlyphAttributes));
|
memset(glyphAttributes.data(), 0, glyphAttributes.size() * sizeof(HB_GlyphAttributes));
|
||||||
qMemSet(advances.data(), 0, advances.size() * sizeof(QFixed));
|
memset(advances.data(), 0, advances.size() * sizeof(QFixed));
|
||||||
qMemSet(glyphJustifications.data(), 0, glyphJustifications.size() * sizeof(QGlyphJustification));
|
memset(glyphJustifications.data(), 0, glyphJustifications.size() * sizeof(QGlyphJustification));
|
||||||
|
|
||||||
textItem.glyphs.numGlyphs = glyphCount;
|
textItem.glyphs.numGlyphs = glyphCount;
|
||||||
textItem.glyphs.glyphs = reinterpret_cast<HB_Glyph *>(const_cast<quint32 *>(glyphArray));
|
textItem.glyphs.glyphs = reinterpret_cast<HB_Glyph *>(const_cast<quint32 *>(glyphArray));
|
||||||
|
@ -612,7 +612,7 @@ void QPAGenerator::writeGMap()
|
|||||||
const int numBytes = glyphCount * sizeof(quint32);
|
const int numBytes = glyphCount * sizeof(quint32);
|
||||||
qint64 pos = buffer.size();
|
qint64 pos = buffer.size();
|
||||||
buffer.resize(pos + numBytes);
|
buffer.resize(pos + numBytes);
|
||||||
qMemSet(buffer.data() + pos, 0xff, numBytes);
|
memset(buffer.data() + pos, 0xff, numBytes);
|
||||||
dev->seek(pos + numBytes);
|
dev->seek(pos + numBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1120,7 +1120,7 @@ void QPFGenerator::writeGMap()
|
|||||||
const int numBytes = glyphCount * sizeof(quint32);
|
const int numBytes = glyphCount * sizeof(quint32);
|
||||||
qint64 pos = buffer.size();
|
qint64 pos = buffer.size();
|
||||||
buffer.resize(pos + numBytes);
|
buffer.resize(pos + numBytes);
|
||||||
qMemSet(buffer.data() + pos, 0xff, numBytes);
|
memset(buffer.data() + pos, 0xff, numBytes);
|
||||||
dev->seek(pos + numBytes);
|
dev->seek(pos + numBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -247,7 +247,7 @@ bool QFontEngineDirectWrite::getSfntTableData(uint tag, uchar *buffer, uint *len
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
qMemCopy(buffer, tableData, tableSize);
|
memcpy(buffer, tableData, tableSize);
|
||||||
m_directWriteFontFace->ReleaseFontTable(tableContext);
|
m_directWriteFontFace->ReleaseFontTable(tableContext);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -597,7 +597,7 @@ QImage QFontEngineDirectWrite::imageForGlyph(glyph_t t,
|
|||||||
int size = width * height * 3;
|
int size = width * height * 3;
|
||||||
if (size > 0) {
|
if (size > 0) {
|
||||||
BYTE *alphaValues = new BYTE[size];
|
BYTE *alphaValues = new BYTE[size];
|
||||||
qMemSet(alphaValues, size, 0);
|
memset(alphaValues, size, 0);
|
||||||
|
|
||||||
hr = glyphAnalysis->CreateAlphaTexture(DWRITE_TEXTURE_CLEARTYPE_3x1,
|
hr = glyphAnalysis->CreateAlphaTexture(DWRITE_TEXTURE_CLEARTYPE_3x1,
|
||||||
&rect,
|
&rect,
|
||||||
|
@ -221,7 +221,7 @@ QVector<quint32> QGlyphRun::glyphIndexes() const
|
|||||||
return d->glyphIndexes;
|
return d->glyphIndexes;
|
||||||
} else {
|
} else {
|
||||||
QVector<quint32> indexes(d->glyphIndexDataSize);
|
QVector<quint32> indexes(d->glyphIndexDataSize);
|
||||||
qMemCopy(indexes.data(), d->glyphIndexData, d->glyphIndexDataSize * sizeof(quint32));
|
memcpy(indexes.data(), d->glyphIndexData, d->glyphIndexDataSize * sizeof(quint32));
|
||||||
return indexes;
|
return indexes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -247,7 +247,7 @@ QVector<QPointF> QGlyphRun::positions() const
|
|||||||
return d->glyphPositions;
|
return d->glyphPositions;
|
||||||
} else {
|
} else {
|
||||||
QVector<QPointF> glyphPositions(d->glyphPositionDataSize);
|
QVector<QPointF> glyphPositions(d->glyphPositionDataSize);
|
||||||
qMemCopy(glyphPositions.data(), d->glyphPositionData,
|
memcpy(glyphPositions.data(), d->glyphPositionData,
|
||||||
d->glyphPositionDataSize * sizeof(QPointF));
|
d->glyphPositionDataSize * sizeof(QPointF));
|
||||||
return glyphPositions;
|
return glyphPositions;
|
||||||
}
|
}
|
||||||
|
@ -504,7 +504,7 @@ QVector<QPointF> QRawFont::advancesForGlyphIndexes(const QVector<quint32> &glyph
|
|||||||
|
|
||||||
int numGlyphs = glyphIndexes.size();
|
int numGlyphs = glyphIndexes.size();
|
||||||
QVarLengthGlyphLayoutArray glyphs(numGlyphs);
|
QVarLengthGlyphLayoutArray glyphs(numGlyphs);
|
||||||
qMemCopy(glyphs.glyphs, glyphIndexes.data(), numGlyphs * sizeof(quint32));
|
memcpy(glyphs.glyphs, glyphIndexes.data(), numGlyphs * sizeof(quint32));
|
||||||
|
|
||||||
d->fontEngine->recalcAdvances(&glyphs, 0);
|
d->fontEngine->recalcAdvances(&glyphs, 0);
|
||||||
|
|
||||||
|
@ -1000,7 +1000,7 @@ void QTextEngine::shapeTextWithHarfbuzz(int item) const
|
|||||||
kerningEnabled = this->font(si).d->kerning;
|
kerningEnabled = this->font(si).d->kerning;
|
||||||
|
|
||||||
HB_ShaperItem entire_shaper_item;
|
HB_ShaperItem entire_shaper_item;
|
||||||
qMemSet(&entire_shaper_item, 0, sizeof(entire_shaper_item));
|
memset(&entire_shaper_item, 0, sizeof(entire_shaper_item));
|
||||||
entire_shaper_item.string = reinterpret_cast<const HB_UChar16 *>(layoutData->string.constData());
|
entire_shaper_item.string = reinterpret_cast<const HB_UChar16 *>(layoutData->string.constData());
|
||||||
entire_shaper_item.stringLength = layoutData->string.length();
|
entire_shaper_item.stringLength = layoutData->string.length();
|
||||||
entire_shaper_item.item.script = (HB_Script)si.analysis.script;
|
entire_shaper_item.item.script = (HB_Script)si.analysis.script;
|
||||||
|
@ -973,7 +973,7 @@ qint64 QNetworkReplyImpl::readData(char *data, qint64 maxlen)
|
|||||||
if (maxAvail == 0)
|
if (maxAvail == 0)
|
||||||
return d->state == QNetworkReplyImplPrivate::Finished ? -1 : 0;
|
return d->state == QNetworkReplyImplPrivate::Finished ? -1 : 0;
|
||||||
// FIXME what about "Aborted" state?
|
// FIXME what about "Aborted" state?
|
||||||
qMemCopy(data, d->downloadBuffer + d->downloadBufferReadPosition, maxAvail);
|
memcpy(data, d->downloadBuffer + d->downloadBufferReadPosition, maxAvail);
|
||||||
d->downloadBufferReadPosition += maxAvail;
|
d->downloadBufferReadPosition += maxAvail;
|
||||||
return maxAvail;
|
return maxAvail;
|
||||||
}
|
}
|
||||||
|
@ -850,7 +850,7 @@ int QWindowsNativeFileDialogBase::itemPaths(IShellItemArray *items,
|
|||||||
static inline void toBuffer(const QString &what, WCHAR **ptr)
|
static inline void toBuffer(const QString &what, WCHAR **ptr)
|
||||||
{
|
{
|
||||||
const int length = 1 + what.size();
|
const int length = 1 + what.size();
|
||||||
qMemCopy(*ptr, what.utf16(), length * sizeof(WCHAR));
|
memcpy(*ptr, what.utf16(), length * sizeof(WCHAR));
|
||||||
*ptr += length;
|
*ptr += length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -275,7 +275,7 @@ bool QWindowsFontEngineDirectWrite::getSfntTableData(uint tag, uchar *buffer, ui
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
qMemCopy(buffer, tableData, tableSize);
|
memcpy(buffer, tableData, tableSize);
|
||||||
m_directWriteFontFace->ReleaseFontTable(tableContext);
|
m_directWriteFontFace->ReleaseFontTable(tableContext);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -570,7 +570,7 @@ QImage QWindowsFontEngineDirectWrite::imageForGlyph(glyph_t t,
|
|||||||
|
|
||||||
int size = width * height * 3;
|
int size = width * height * 3;
|
||||||
BYTE *alphaValues = new BYTE[size];
|
BYTE *alphaValues = new BYTE[size];
|
||||||
qMemSet(alphaValues, size, 0);
|
memset(alphaValues, size, 0);
|
||||||
|
|
||||||
hr = glyphAnalysis->CreateAlphaTexture(DWRITE_TEXTURE_CLEARTYPE_3x1,
|
hr = glyphAnalysis->CreateAlphaTexture(DWRITE_TEXTURE_CLEARTYPE_3x1,
|
||||||
&rect,
|
&rect,
|
||||||
|
@ -143,7 +143,7 @@ QByteArray composePreprocessorOutput(const Symbols &symbols) {
|
|||||||
const int padding = sym.lineNum - lineNum;
|
const int padding = sym.lineNum - lineNum;
|
||||||
if (padding > 0) {
|
if (padding > 0) {
|
||||||
output.resize(output.size() + padding);
|
output.resize(output.size() + padding);
|
||||||
qMemSet(output.data() + output.size() - padding, '\n', padding);
|
memset(output.data() + output.size() - padding, '\n', padding);
|
||||||
lineNum = sym.lineNum;
|
lineNum = sym.lineNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -779,7 +779,7 @@ void QGridLayoutPrivate::setupLayoutData(int hSpacing, int vSpacing)
|
|||||||
adjacent to which and compute the spacings correctly.
|
adjacent to which and compute the spacings correctly.
|
||||||
*/
|
*/
|
||||||
QVarLengthArray<QGridBox *> grid(rr * cc);
|
QVarLengthArray<QGridBox *> grid(rr * cc);
|
||||||
qMemSet(grid.data(), 0, rr * cc * sizeof(QGridBox *));
|
memset(grid.data(), 0, rr * cc * sizeof(QGridBox *));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Initialize 'sizes' and 'grid' data structures, and insert
|
Initialize 'sizes' and 'grid' data structures, and insert
|
||||||
|
@ -402,7 +402,7 @@ public:
|
|||||||
if (readSize < 0)
|
if (readSize < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
qMemCopy(data, openFile_->content.constData() + position_, readSize);
|
memcpy(data, openFile_->content.constData() + position_, readSize);
|
||||||
position_ += readSize;
|
position_ += readSize;
|
||||||
|
|
||||||
return readSize;
|
return readSize;
|
||||||
|
@ -622,7 +622,7 @@ void tst_QByteArray::fromBase64()
|
|||||||
void tst_QByteArray::qvsnprintf()
|
void tst_QByteArray::qvsnprintf()
|
||||||
{
|
{
|
||||||
char buf[20];
|
char buf[20];
|
||||||
qMemSet(buf, 42, sizeof(buf));
|
memset(buf, 42, sizeof(buf));
|
||||||
|
|
||||||
QCOMPARE(::qsnprintf(buf, 10, "%s", "bubu"), 4);
|
QCOMPARE(::qsnprintf(buf, 10, "%s", "bubu"), 4);
|
||||||
QCOMPARE(static_cast<const char *>(buf), "bubu");
|
QCOMPARE(static_cast<const char *>(buf), "bubu");
|
||||||
@ -631,12 +631,12 @@ void tst_QByteArray::qvsnprintf()
|
|||||||
QCOMPARE(buf[5], char(42));
|
QCOMPARE(buf[5], char(42));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
qMemSet(buf, 42, sizeof(buf));
|
memset(buf, 42, sizeof(buf));
|
||||||
QCOMPARE(::qsnprintf(buf, 5, "%s", "bubu"), 4);
|
QCOMPARE(::qsnprintf(buf, 5, "%s", "bubu"), 4);
|
||||||
QCOMPARE(static_cast<const char *>(buf), "bubu");
|
QCOMPARE(static_cast<const char *>(buf), "bubu");
|
||||||
QCOMPARE(buf[5], char(42));
|
QCOMPARE(buf[5], char(42));
|
||||||
|
|
||||||
qMemSet(buf, 42, sizeof(buf));
|
memset(buf, 42, sizeof(buf));
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
// VS 2005 uses the Qt implementation of vsnprintf.
|
// VS 2005 uses the Qt implementation of vsnprintf.
|
||||||
# if defined(_MSC_VER) && _MSC_VER >= 1400 && !defined(Q_OS_WINCE)
|
# if defined(_MSC_VER) && _MSC_VER >= 1400 && !defined(Q_OS_WINCE)
|
||||||
@ -661,7 +661,7 @@ void tst_QByteArray::qvsnprintf()
|
|||||||
QCOMPARE(buf[4], char(42));
|
QCOMPARE(buf[4], char(42));
|
||||||
|
|
||||||
#ifndef Q_OS_WIN
|
#ifndef Q_OS_WIN
|
||||||
qMemSet(buf, 42, sizeof(buf));
|
memset(buf, 42, sizeof(buf));
|
||||||
QCOMPARE(::qsnprintf(buf, 10, ""), 0);
|
QCOMPARE(::qsnprintf(buf, 10, ""), 0);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ static void initializePadding(QImage *image)
|
|||||||
if (paddingBytes == 0)
|
if (paddingBytes == 0)
|
||||||
return;
|
return;
|
||||||
for (int y = 0; y < image->height(); ++y) {
|
for (int y = 0; y < image->height(); ++y) {
|
||||||
qMemSet(image->scanLine(y) + effectiveBytesPerLine, 0, paddingBytes);
|
memset(image->scanLine(y) + effectiveBytesPerLine, 0, paddingBytes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -454,7 +454,7 @@ void tst_QImageWriter::saveWithNoFormat()
|
|||||||
SKIP_IF_UNSUPPORTED(format);
|
SKIP_IF_UNSUPPORTED(format);
|
||||||
|
|
||||||
QImage niceImage(64, 64, QImage::Format_ARGB32);
|
QImage niceImage(64, 64, QImage::Format_ARGB32);
|
||||||
qMemSet(niceImage.bits(), 0, niceImage.byteCount());
|
memset(niceImage.bits(), 0, niceImage.byteCount());
|
||||||
|
|
||||||
QImageWriter writer(fileName /* , 0 - no format! */);
|
QImageWriter writer(fileName /* , 0 - no format! */);
|
||||||
if (error != 0) {
|
if (error != 0) {
|
||||||
|
@ -400,7 +400,7 @@ bool tst_QFileSystemModel::createFiles(const QString &test_path, const QStringLi
|
|||||||
if (initial_files.at(i)[0] == '.') {
|
if (initial_files.at(i)[0] == '.') {
|
||||||
QString hiddenFile = QDir::toNativeSeparators(file.fileName());
|
QString hiddenFile = QDir::toNativeSeparators(file.fileName());
|
||||||
wchar_t nativeHiddenFile[MAX_PATH];
|
wchar_t nativeHiddenFile[MAX_PATH];
|
||||||
qMemSet(nativeHiddenFile, 0, sizeof(nativeHiddenFile));
|
memset(nativeHiddenFile, 0, sizeof(nativeHiddenFile));
|
||||||
hiddenFile.toWCharArray(nativeHiddenFile);
|
hiddenFile.toWCharArray(nativeHiddenFile);
|
||||||
DWORD currentAttributes = ::GetFileAttributes(nativeHiddenFile);
|
DWORD currentAttributes = ::GetFileAttributes(nativeHiddenFile);
|
||||||
if (currentAttributes == 0xFFFFFFFF) {
|
if (currentAttributes == 0xFFFFFFFF) {
|
||||||
|
@ -885,7 +885,7 @@ void tst_QItemDelegate::decoration()
|
|||||||
}
|
}
|
||||||
case QVariant::Image: {
|
case QVariant::Image: {
|
||||||
QImage img(size, QImage::Format_Mono);
|
QImage img(size, QImage::Format_Mono);
|
||||||
qMemSet(img.bits(), 0, img.byteCount());
|
memset(img.bits(), 0, img.byteCount());
|
||||||
value = img;
|
value = img;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -232,7 +232,7 @@ quint64 ImageItem::computeChecksum(const QImage &image)
|
|||||||
uchar *p = img.bits() + bpl - padBytes;
|
uchar *p = img.bits() + bpl - padBytes;
|
||||||
const int h = img.height();
|
const int h = img.height();
|
||||||
for (int y = 0; y < h; ++y) {
|
for (int y = 0; y < h; ++y) {
|
||||||
qMemSet(p, 0, padBytes);
|
memset(p, 0, padBytes);
|
||||||
p += bpl;
|
p += bpl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -379,7 +379,7 @@ QRawVector<T>::QRawVector(int asize)
|
|||||||
while (i != b)
|
while (i != b)
|
||||||
new (--i) T;
|
new (--i) T;
|
||||||
} else {
|
} else {
|
||||||
qMemSet(m_begin, 0, asize * sizeof(T));
|
memset(m_begin, 0, asize * sizeof(T));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -474,7 +474,7 @@ void QRawVector<T>::realloc(int asize, int aalloc, bool ref)
|
|||||||
|
|
||||||
} else if (asize > xsize) {
|
} else if (asize > xsize) {
|
||||||
// initialize newly allocated memory to 0
|
// initialize newly allocated memory to 0
|
||||||
qMemSet(xbegin + xsize, 0, (asize - xsize) * sizeof(T));
|
memset(xbegin + xsize, 0, (asize - xsize) * sizeof(T));
|
||||||
}
|
}
|
||||||
xsize = asize;
|
xsize = asize;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user