qglobal.h: remove deprecated global functions

Since 5.0 - qMalloc(), qFree(), qRealloc(), qMemCopy(), qMemSet()
Since 5.15 - qsrand(), qrand()

Change-Id: I74fa3d17b05521271c3dc563fc85a5b133289ce3
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This commit is contained in:
Edward Welbourne 2020-07-20 13:37:58 +02:00
parent ff555d8965
commit 9ee554ac1d
11 changed files with 2 additions and 200 deletions

View File

@ -122,12 +122,6 @@ extern "C" {
QT_BEGIN_NAMESPACE
#if !QT_DEPRECATED_SINCE(5, 0)
// Make sure they're defined to be exported
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);
#endif
// Statically check assumptions about the environment we're running
// in. The idea here is to error or warn if otherwise implicit Qt
// assumptions are not fulfilled on new hardware or compilers
@ -3165,9 +3159,6 @@ Q_CORE_EXPORT Q_DECL_CONST_FUNCTION unsigned int qt_int_sqrt(unsigned int n)
return p;
}
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); }
// In the C runtime on all platforms access to the environment is not thread-safe. We
// add thread-safety for the Qt wrappers.
static QBasicMutex environmentMutex;

View File

@ -968,13 +968,6 @@ inline void qSwap(T &value1, T &value2)
QT_WARNING_POP
#if QT_DEPRECATED_SINCE(5, 0)
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 *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
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 qFreeAligned(void *ptr);
@ -1268,14 +1261,6 @@ Q_CORE_EXPORT int qEnvironmentVariableIntValue(const char *varName, bool *ok=nu
inline int qIntCast(double f) { return int(f); }
inline int qIntCast(float f) { return int(f); }
/*
Reentrant versions of basic rand() functions for random number generation
*/
#if QT_DEPRECATED_SINCE(5, 15)
Q_CORE_EXPORT QT_DEPRECATED_VERSION_X_5_15("use QRandomGenerator instead") void qsrand(uint seed);
Q_CORE_EXPORT QT_DEPRECATED_VERSION_X_5_15("use QRandomGenerator instead") int qrand();
#endif
#define QT_MODULE(x)
#if !defined(QT_BOOTSTRAPPED) && defined(QT_REDUCE_RELOCATIONS) && defined(__ELF__) && \

View File

@ -49,29 +49,6 @@
QT_BEGIN_NAMESPACE
#if !QT_DEPRECATED_SINCE(5, 0)
// Make sure they're defined to be exported
Q_CORE_EXPORT void *qMalloc(size_t size) Q_ALLOC_SIZE(1);
Q_CORE_EXPORT void qFree(void *ptr);
Q_CORE_EXPORT void *qRealloc(void *ptr, size_t size) Q_ALLOC_SIZE(2);
#endif
void *qMalloc(size_t size)
{
return ::malloc(size);
}
void qFree(void *ptr)
{
::free(ptr);
}
void *qRealloc(void *ptr, size_t size)
{
return ::realloc(ptr, size);
}
void *qMallocAligned(size_t size, size_t alignment)
{
return qReallocAligned(nullptr, size, 0, alignment);

View File

@ -595,7 +595,7 @@ inline QRandomGenerator::SystemGenerator &QRandomGenerator::SystemGenerator::sel
\snippet code/src_corelib_global_qrandom.cpp 3
\sa QRandomGenerator64, qrand()
\sa QRandomGenerator64
*/
/*!
@ -1242,62 +1242,4 @@ static inline QRandEngine *randTLS()
}
#endif
/*!
\relates <QtGlobal>
\deprecated
\since 4.2
Thread-safe version of the standard C++ \c srand() function.
Sets the argument \a newSeed to be used to generate a new random number sequence of
pseudo random integers to be returned by qrand().
The sequence of random numbers generated is deterministic per thread. For example,
if two threads call qsrand(1) and subsequently call qrand(), the threads will get
the same random number sequence.
\note This function is deprecated. In new applications, use
QRandomGenerator instead.
\sa qrand(), QRandomGenerator
*/
void qsrand(uint newSeed)
{
auto prng = randTLS();
if (prng)
prng->seed(newSeed);
else
srand(newSeed);
}
/*!
\relates <QtGlobal>
\deprecated
\since 4.2
Thread-safe version of the standard C++ \c rand() function.
Returns a value between 0 and \c RAND_MAX (defined in \c <cstdlib> and
\c <stdlib.h>), the next number in the current sequence of pseudo-random
integers.
Use \c qsrand() to initialize the pseudo-random number generator with a
seed value. Seeding must be performed at least once on each thread. If that
step is skipped, then the sequence will be pre-seeded with a constant
value.
\note This function is deprecated. In new applications, use
QRandomGenerator instead.
\sa qsrand(), QRandomGenerator
*/
int qrand()
{
auto prng = randTLS();
if (prng)
return prng->generate();
else
return rand();
}
QT_END_NAMESPACE

View File

@ -6,7 +6,6 @@ add_subdirectory(qgetputenv)
add_subdirectory(qglobal)
add_subdirectory(qnumeric)
add_subdirectory(qfloat16)
add_subdirectory(qrand)
add_subdirectory(qrandomgenerator)
add_subdirectory(qlogging)
add_subdirectory(qtendian)

View File

@ -6,7 +6,6 @@ SUBDIRS=\
qglobal \
qnumeric \
qfloat16 \
qrand \
qrandomgenerator \
qlogging \
qtendian \

View File

@ -185,7 +185,7 @@ void tst_QGlobalStatic::threadStressTest()
void run()
{
QReadLocker l(lock);
//usleep(qrand() * 200 / RAND_MAX);
//usleep(QRandomGenerator::global()->generate(200));
// thundering herd
try {
threadStressTestGS();

View File

@ -1 +0,0 @@
tst_qrand

View File

@ -1,10 +0,0 @@
# Generated from qrand.pro.
#####################################################################
## tst_qrand Test:
#####################################################################
qt_add_test(tst_qrand
SOURCES
tst_qrand.cpp
)

View File

@ -1,4 +0,0 @@
CONFIG += testcase
TARGET = tst_qrand
QT = core testlib
SOURCES = tst_qrand.cpp

View File

@ -1,76 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the test suite of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <QtTest/QtTest>
QT_WARNING_DISABLE_DEPRECATED
class tst_QRand: public QObject
{
Q_OBJECT
private slots:
void testqrand();
};
void tst_QRand::testqrand()
{
const int numTestValues = 100;
int generatedNumbers[numTestValues];
bool generatesSameSequence = true;
// test without calling srand() first
// should give same sequence as with srand(1)
for (int i=0; i<numTestValues; ++i)
generatedNumbers[i] = qrand();
qsrand(1);
for (int i=0; i<numTestValues; ++i)
if (generatedNumbers[i] != qrand())
generatesSameSequence = false;
QVERIFY(generatesSameSequence);
for (unsigned int seed=1; seed < 10; seed+=100) {
qsrand(seed);
for (int i=0; i<numTestValues; ++i)
generatedNumbers[i] = qrand();
qsrand(seed);
generatesSameSequence = true;
for (int i=0; i<numTestValues; ++i)
if (generatedNumbers[i] != qrand())
generatesSameSequence = false;
QVERIFY(generatesSameSequence);
}
}
QTEST_MAIN(tst_QRand)
#include "tst_qrand.moc"