From 9ee554ac1d1af97e7ad5b4bf78e2779f7d1c405f Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Mon, 20 Jul 2020 13:37:58 +0200 Subject: 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 --- src/corelib/global/qglobal.cpp | 9 --- src/corelib/global/qglobal.h | 15 ----- src/corelib/global/qmalloc.cpp | 23 ------- src/corelib/global/qrandom.cpp | 60 +---------------- tests/auto/corelib/global/CMakeLists.txt | 1 - tests/auto/corelib/global/global.pro | 1 - .../global/qglobalstatic/tst_qglobalstatic.cpp | 2 +- tests/auto/corelib/global/qrand/.gitignore | 1 - tests/auto/corelib/global/qrand/CMakeLists.txt | 10 --- tests/auto/corelib/global/qrand/qrand.pro | 4 -- tests/auto/corelib/global/qrand/tst_qrand.cpp | 76 ---------------------- 11 files changed, 2 insertions(+), 200 deletions(-) delete mode 100644 tests/auto/corelib/global/qrand/.gitignore delete mode 100644 tests/auto/corelib/global/qrand/CMakeLists.txt delete mode 100644 tests/auto/corelib/global/qrand/qrand.pro delete mode 100644 tests/auto/corelib/global/qrand/tst_qrand.cpp diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index 5655f77d3c..4f51a0e259 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -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; diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 94de9fd79e..db858c44b3 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -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__) && \ diff --git a/src/corelib/global/qmalloc.cpp b/src/corelib/global/qmalloc.cpp index b071c1df62..fbea0e5689 100644 --- a/src/corelib/global/qmalloc.cpp +++ b/src/corelib/global/qmalloc.cpp @@ -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); diff --git a/src/corelib/global/qrandom.cpp b/src/corelib/global/qrandom.cpp index 4ebe53d572..1d2a29c074 100644 --- a/src/corelib/global/qrandom.cpp +++ b/src/corelib/global/qrandom.cpp @@ -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 - \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 - \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 and - \c ), 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 diff --git a/tests/auto/corelib/global/CMakeLists.txt b/tests/auto/corelib/global/CMakeLists.txt index 8f1a8171ea..29c696e121 100644 --- a/tests/auto/corelib/global/CMakeLists.txt +++ b/tests/auto/corelib/global/CMakeLists.txt @@ -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) diff --git a/tests/auto/corelib/global/global.pro b/tests/auto/corelib/global/global.pro index 0b37bf63cf..8af353728d 100644 --- a/tests/auto/corelib/global/global.pro +++ b/tests/auto/corelib/global/global.pro @@ -6,7 +6,6 @@ SUBDIRS=\ qglobal \ qnumeric \ qfloat16 \ - qrand \ qrandomgenerator \ qlogging \ qtendian \ diff --git a/tests/auto/corelib/global/qglobalstatic/tst_qglobalstatic.cpp b/tests/auto/corelib/global/qglobalstatic/tst_qglobalstatic.cpp index 820a0b999b..6b8f634e1f 100644 --- a/tests/auto/corelib/global/qglobalstatic/tst_qglobalstatic.cpp +++ b/tests/auto/corelib/global/qglobalstatic/tst_qglobalstatic.cpp @@ -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(); diff --git a/tests/auto/corelib/global/qrand/.gitignore b/tests/auto/corelib/global/qrand/.gitignore deleted file mode 100644 index e8ec2ebfd1..0000000000 --- a/tests/auto/corelib/global/qrand/.gitignore +++ /dev/null @@ -1 +0,0 @@ -tst_qrand diff --git a/tests/auto/corelib/global/qrand/CMakeLists.txt b/tests/auto/corelib/global/qrand/CMakeLists.txt deleted file mode 100644 index 8b1fabfeb8..0000000000 --- a/tests/auto/corelib/global/qrand/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -# Generated from qrand.pro. - -##################################################################### -## tst_qrand Test: -##################################################################### - -qt_add_test(tst_qrand - SOURCES - tst_qrand.cpp -) diff --git a/tests/auto/corelib/global/qrand/qrand.pro b/tests/auto/corelib/global/qrand/qrand.pro deleted file mode 100644 index ee1430aea5..0000000000 --- a/tests/auto/corelib/global/qrand/qrand.pro +++ /dev/null @@ -1,4 +0,0 @@ -CONFIG += testcase -TARGET = tst_qrand -QT = core testlib -SOURCES = tst_qrand.cpp diff --git a/tests/auto/corelib/global/qrand/tst_qrand.cpp b/tests/auto/corelib/global/qrand/tst_qrand.cpp deleted file mode 100644 index 279f4e0a34..0000000000 --- a/tests/auto/corelib/global/qrand/tst_qrand.cpp +++ /dev/null @@ -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 - -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