From 18d86663120ff61fa1e1b09d95bf91c77a0929f8 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 19 Apr 2016 16:52:51 +0300 Subject: [PATCH] Moved to g++ 4.9, fixed some warnings, codegen used for Linux build. --- Telegram/SourceFiles/core/basic_types.cpp | 62 +++++-------------- .../inline_bots/inline_bot_result.cpp | 28 --------- .../inline_bots/inline_bot_result.h | 1 - Telegram/SourceFiles/localstorage.cpp | 25 -------- Telegram/SourceFiles/ui/text/text.cpp | 2 +- Telegram/Telegram.pro | 55 ++++++++-------- .../qmake/codegen_numbers/codegen_numbers.pro | 36 +++++------ .../qmake/codegen_style/codegen_style.pro | 48 +++++++------- 8 files changed, 88 insertions(+), 169 deletions(-) diff --git a/Telegram/SourceFiles/core/basic_types.cpp b/Telegram/SourceFiles/core/basic_types.cpp index 5d1bc68749..79851ca379 100644 --- a/Telegram/SourceFiles/core/basic_types.cpp +++ b/Telegram/SourceFiles/core/basic_types.cpp @@ -45,52 +45,22 @@ uint64 _SharedMemoryLocation[4] = { 0x00, 0x01, 0x02, 0x03 }; // Base types compile-time check -#ifdef TDESKTOP_CUSTOM_NULLPTR -NullPointerClass nullptr; -#endif - -namespace { - template - class _TypeSizeCheckerHelper { - public: - _TypeSizeCheckerHelper() { - int _BadTypeSize[N ? -1 : 1]; - (void)sizeof(_BadTypeSize); - } - }; - - template - class _TypeSizeCheckerHelper { - public: - _TypeSizeCheckerHelper() { - } - }; - - template - class _TypeSizeChecker { - _TypeSizeCheckerHelper checker; - }; - - void _typesCheck() { - _TypeSizeChecker(); - _TypeSizeChecker(); - _TypeSizeChecker(); - _TypeSizeChecker(); - _TypeSizeChecker(); - _TypeSizeChecker(); - _TypeSizeChecker(); - _TypeSizeChecker(); - _TypeSizeChecker(); - _TypeSizeChecker(); - - _TypeSizeChecker(); - _TypeSizeChecker(); - _TypeSizeChecker(); - _TypeSizeChecker(); - _TypeSizeChecker(); - _TypeSizeChecker(); - } -} +static_assert(sizeof(char) == 1, "Basic types size check failed"); +static_assert(sizeof(uchar) == 1, "Basic types size check failed"); +static_assert(sizeof(int16) == 2, "Basic types size check failed"); +static_assert(sizeof(uint16) == 2, "Basic types size check failed"); +static_assert(sizeof(int32) == 4, "Basic types size check failed"); +static_assert(sizeof(uint32) == 4, "Basic types size check failed"); +static_assert(sizeof(int64) == 8, "Basic types size check failed"); +static_assert(sizeof(uint64) == 8, "Basic types size check failed"); +static_assert(sizeof(float32) == 4, "Basic types size check failed"); +static_assert(sizeof(float64) == 8, "Basic types size check failed"); +static_assert(sizeof(mtpPrime) == 4, "Basic types size check failed"); +static_assert(sizeof(MTPint) == 4, "Basic types size check failed"); +static_assert(sizeof(MTPlong) == 8, "Basic types size check failed"); +static_assert(sizeof(MTPint128) == 16, "Basic types size check failed"); +static_assert(sizeof(MTPint256) == 32, "Basic types size check failed"); +static_assert(sizeof(MTPdouble) == 8, "Basic types size check failed"); // Unixtime functions diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_result.cpp b/Telegram/SourceFiles/inline_bots/inline_bot_result.cpp index eb735f586a..4afa923099 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_result.cpp +++ b/Telegram/SourceFiles/inline_bots/inline_bot_result.cpp @@ -29,34 +29,6 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org namespace InlineBots { -namespace { - -using ResultsByLoaderMap = QMap; -NeverFreedPointer ResultsByLoader; - -void regLoader(FileLoader *loader, Result *result) { - ResultsByLoader.createIfNull([]() -> ResultsByLoaderMap* { - return new ResultsByLoaderMap(); - }); - ResultsByLoader->insert(loader, result); -} - -void unregLoader(FileLoader *loader) { - if (!ResultsByLoader) { - return; - } - ResultsByLoader->remove(loader); -} - -} // namespace - -Result *getResultFromLoader(FileLoader *loader) { - if (!ResultsByLoader) { - return nullptr; - } - return ResultsByLoader->value(loader, nullptr); -} - Result::Result(const Creator &creator) : _queryId(creator.queryId), _type(creator.type) { } diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_result.h b/Telegram/SourceFiles/inline_bots/inline_bot_result.h index 5da9808faa..105b50b46c 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_result.h +++ b/Telegram/SourceFiles/inline_bots/inline_bot_result.h @@ -120,6 +120,5 @@ private: std_::unique_ptr sendData; }; -Result *getResultFromLoader(FileLoader *loader); } // namespace InlineBots diff --git a/Telegram/SourceFiles/localstorage.cpp b/Telegram/SourceFiles/localstorage.cpp index dc5a34e399..8fde7156c7 100644 --- a/Telegram/SourceFiles/localstorage.cpp +++ b/Telegram/SourceFiles/localstorage.cpp @@ -48,27 +48,6 @@ namespace { return result; } - FileKey fromFilePart(const QString &val) { - FileKey result = 0; - int32 i = val.size(); - if (i != 0x10) return 0; - - while (i > 0) { - --i; - result <<= 4; - - uint16 ch = val.at(i).unicode(); - if (ch >= 'A' && ch <= 'F') { - result |= (ch - 'A') + 0x0A; - } else if (ch >= '0' && ch <= '9') { - result |= (ch - '0'); - } else { - return 0; - } - } - return result; - } - QString _basePath, _userBasePath; bool _started = false; @@ -360,10 +339,6 @@ namespace { return false; } - bool fileExists(const FileKey &fkey, int options = UserPath | SafePath) { - return fileExists(toFilePart(fkey), options); - } - bool readFile(FileReadDescriptor &result, const QString &name, int options = UserPath | SafePath) { if (options & UserPath) { if (!_userWorking()) return false; diff --git a/Telegram/SourceFiles/ui/text/text.cpp b/Telegram/SourceFiles/ui/text/text.cpp index 3df18ee76f..3d0c46d378 100644 --- a/Telegram/SourceFiles/ui/text/text.cpp +++ b/Telegram/SourceFiles/ui/text/text.cpp @@ -1591,7 +1591,7 @@ public: if (_wLeft < si.width) { lineText = lineText.mid(0, currentBlock->from() - _localFrom) + _Elide; lineLength = currentBlock->from() + _Elide.size() - _lineStart; - _selection.to = _selection.to = qMin(_selection.to, currentBlock->from()); + _selection.to = qMin(_selection.to, currentBlock->from()); setElideBidi(currentBlock->from(), _Elide.size()); elideSaveBlock(blockIndex - 1, _endBlock, currentBlock->from(), elideWidth); return; diff --git a/Telegram/Telegram.pro b/Telegram/Telegram.pro index 7b69fedb84..00a280f2c9 100644 --- a/Telegram/Telegram.pro +++ b/Telegram/Telegram.pro @@ -29,25 +29,20 @@ linux { HEADERS += ./SourceFiles/pspecific_linux.h } -style_auto_cpp.target = ./GeneratedFiles/style_auto.cpp -style_auto_cpp.depends = FORCE -style_auto_cpp.commands = mkdir -p ./../../Telegram/GeneratedFiles && ./../DebugStyle/MetaStyle -classes_in ./../../Telegram/Resources/style_classes.txt -classes_out ./../../Telegram/GeneratedFiles/style_classes.h -styles_in ./../../Telegram/Resources/style.txt -styles_out ./../../Telegram/GeneratedFiles/style_auto.h -path_to_sprites ./../../Telegram/Resources/art/ -style_auto_cpp.depends = ./../../Telegram/Resources/style.txt +codegen_style.target = ./GeneratedFiles/styles/style_basic_types.h +codegen_style.depends = FORCE -style_auto_h.target = ./GeneratedFiles/style_auto.h -style_auto_h.depends = FORCE -style_auto_h.commands = mkdir -p ./../../Telegram/GeneratedFiles && ./../DebugStyle/MetaStyle -classes_in ./../../Telegram/Resources/style_classes.txt -classes_out ./../../Telegram/GeneratedFiles/style_classes.h -styles_in ./../../Telegram/Resources/style.txt -styles_out ./../../Telegram/GeneratedFiles/style_auto.h -path_to_sprites ./../../Telegram/Resources/art/ -style_auto_h.depends = ./../../Telegram/Resources/style.txt +codegen_numbers.target = ./GeneratedFiles/numbers.cpp +codegen_numbers.depends = ./../../Telegram/Resources/numbers.txt -style_classes_h.target = ./GeneratedFiles/style_classes.h -style_classes_h.depends = FORCE -style_classes_h.commands = mkdir -p ./../../Telegram/GeneratedFiles && ./../DebugStyle/MetaStyle -classes_in ./../../Telegram/Resources/style_classes.txt -classes_out ./../../Telegram/GeneratedFiles/style_classes.h -styles_in ./../../Telegram/Resources/style.txt -styles_out ./../../Telegram/GeneratedFiles/style_auto.h -path_to_sprites ./../../Telegram/Resources/art/ -style_classes_h.depends = ./../../Telegram/Resources/style_classes.txt - -numbers_cpp.target = ./GeneratedFiles/numbers.cpp -numbers_cpp.depends = FORCE -numbers_cpp.commands = mkdir -p ./../../Telegram/GeneratedFiles && ./../DebugStyle/MetaStyle -classes_in ./../../Telegram/Resources/style_classes.txt -classes_out ./../../Telegram/GeneratedFiles/style_classes.h -styles_in ./../../Telegram/Resources/style.txt -styles_out ./../../Telegram/GeneratedFiles/style_auto.h -path_to_sprites ./../../Telegram/Resources/art/ -numbers_cpp.depends = ./../../Telegram/Resources/numbers.txt +CONFIG(debug, debug|release) { +codegen_style.commands = cd ../../Telegram && ./../Linux/codegen/Debug/codegen_style "-I./SourceFiles" "-o./GeneratedFiles/styles" "./Resources/all_files.style" --rebuild && cd ../Linux/DebugIntermediate +codegen_numbers.commands = cd ../../Telegram && ./../Linux/codegen/Debug/codegen_numbers "-o./GeneratedFiles" "./Resources/numbers.txt" && cd ../Linux/DebugIntermediate +} +CONFIG(release, debug|release) { +codegen_style.commands = cd ../../Telegram && ./../Linux/codegen/Debug/codegen_style "-I./SourceFiles" "-o./GeneratedFiles/styles" "./Resources/all_files.style" --rebuild && cd ../Linux/ReleaseIntermediate +codegen_numbers.commands = cd ../../Telegram && ./../Linux/codegen/Debug/codegen_numbers "-o./GeneratedFiles" "./Resources/numbers.txt" && cd ../Linux/ReleaseIntermediate +} lang_auto_cpp.target = ./GeneratedFiles/lang_auto.cpp lang_auto_cpp.depends = FORCE @@ -59,13 +54,19 @@ lang_auto_h.depends = FORCE lang_auto_h.commands = mkdir -p ./../../Telegram/GeneratedFiles && ./../DebugLang/MetaLang -lang_in ./../../Telegram/Resources/lang.strings -lang_out ./../../Telegram/GeneratedFiles/lang_auto lang_auto_h.depends = ./../../Telegram/Resources/lang.strings -hook.depends = style_auto_cpp style_auto_h style_classes_h numbers_cpp lang_auto_cpp lang_auto_h +#hook.depends = style_auto_cpp style_auto_h style_classes_h numbers_cpp lang_auto_cpp lang_auto_h +hook.depends = codegen_style codegen_numbers lang_auto_cpp lang_auto_h CONFIG(debug,debug|release):hook.target = Makefile.Debug CONFIG(release,debug|release):hook.target = Makefile.Release -QMAKE_EXTRA_TARGETS += style_auto_cpp style_auto_h style_classes_h numbers_cpp lang_auto_cpp lang_auto_h hook +#QMAKE_EXTRA_TARGETS += style_auto_cpp style_auto_h style_classes_h numbers_cpp lang_auto_cpp lang_auto_h hook +QMAKE_EXTRA_TARGETS += codegen_style codegen_numbers lang_auto_cpp lang_auto_h hook -PRE_TARGETDEPS += ./GeneratedFiles/style_auto.cpp ./GeneratedFiles/style_auto.h ./GeneratedFiles/style_classes.h ./GeneratedFiles/numbers.cpp ./GeneratedFiles/lang_auto.h ./GeneratedFiles/lang_auto.cpp +#PRE_TARGETDEPS += ./GeneratedFiles/style_auto.cpp ./GeneratedFiles/style_auto.h ./GeneratedFiles/style_classes.h ./GeneratedFiles/numbers.cpp ./GeneratedFiles/lang_auto.h ./GeneratedFiles/lang_auto.cpp +PRE_TARGETDEPS += \ +./GeneratedFiles/styles/style_basic_types.h \ +./GeneratedFiles/lang_auto.h \ +./GeneratedFiles/lang_auto.cpp unix { linux-g++:QMAKE_TARGET.arch = $$QMAKE_HOST.arch @@ -81,8 +82,9 @@ unix { SOURCES += \ ./GeneratedFiles/lang_auto.cpp \ - ./GeneratedFiles/style_auto.cpp \ ./GeneratedFiles/numbers.cpp \ + ./GeneratedFiles/styles/style_basic.cpp \ + ./GeneratedFiles/styles/style_basic_types.cpp \ ./SourceFiles/main.cpp \ ./SourceFiles/stdafx.cpp \ ./SourceFiles/apiwrap.cpp \ @@ -193,8 +195,9 @@ SOURCES += \ HEADERS += \ ./GeneratedFiles/lang_auto.h \ - ./GeneratedFiles/style_auto.h \ - ./GeneratedFiles/style_classes.h \ + ./GeneratedFiles/numbers.h \ + ./GeneratedFiles/styles/style_basic.h \ + ./GeneratedFiles/styles/style_basic_types.h \ ./SourceFiles/stdafx.h \ ./SourceFiles/apiwrap.h \ ./SourceFiles/app.h \ @@ -214,7 +217,6 @@ HEADERS += \ ./SourceFiles/layerwidget.h \ ./SourceFiles/layout.h \ ./SourceFiles/mediaview.h \ - ./SourceFiles/numbers.h \ ./SourceFiles/overviewwidget.h \ ./SourceFiles/passcodewidget.h \ ./SourceFiles/profilewidget.h \ @@ -400,8 +402,9 @@ RESOURCES += \ ./Resources/telegram_emojis.qrc OTHER_FILES += \ - ./Resources/style_classes.txt \ - ./Resources/style.txt \ + ./Resources/basic_types.style \ + ./Resources/basic.style \ + ./Resources/all_files.style \ ./Resources/lang.strings \ ./Resources/langs/lang_it.strings \ ./Resources/langs/lang_es.strings \ diff --git a/Telegram/build/qmake/codegen_numbers/codegen_numbers.pro b/Telegram/build/qmake/codegen_numbers/codegen_numbers.pro index c7da68a132..a3927f5a6f 100644 --- a/Telegram/build/qmake/codegen_numbers/codegen_numbers.pro +++ b/Telegram/build/qmake/codegen_numbers/codegen_numbers.pro @@ -21,25 +21,25 @@ QMAKE_CXXFLAGS_WARN_ON += -Wno-missing-field-initializers TEMPLATE = app SOURCES += \ -./../../../SourceFiles/codegen/common/basic_tokenized_file.cpp\ -./../../../SourceFiles/codegen/common/checked_utf8_string.cpp\ -./../../../SourceFiles/codegen/common/clean_file.cpp\ -./../../../SourceFiles/codegen/common/cpp_file.cpp\ -./../../../SourceFiles/codegen/common/logging.cpp\ -./../../../SourceFiles/codegen/numbers/generator.cpp\ -./../../../SourceFiles/codegen/numbers/main.cpp\ -./../../../SourceFiles/codegen/numbers/options.cpp\ -./../../../SourceFiles/codegen/numbers/parsed_file.cpp\ +./../../../SourceFiles/codegen/common/basic_tokenized_file.cpp \ +./../../../SourceFiles/codegen/common/checked_utf8_string.cpp \ +./../../../SourceFiles/codegen/common/clean_file.cpp \ +./../../../SourceFiles/codegen/common/cpp_file.cpp \ +./../../../SourceFiles/codegen/common/logging.cpp \ +./../../../SourceFiles/codegen/numbers/generator.cpp \ +./../../../SourceFiles/codegen/numbers/main.cpp \ +./../../../SourceFiles/codegen/numbers/options.cpp \ +./../../../SourceFiles/codegen/numbers/parsed_file.cpp \ ./../../../SourceFiles/codegen/numbers/processor.cpp HEADERS += \ -./../../../SourceFiles/codegen/common/basic_tokenized_file.h\ -./../../../SourceFiles/codegen/common/checked_utf8_string.h\ -./../../../SourceFiles/codegen/common/clean_file.h\ -./../../../SourceFiles/codegen/common/clean_file_reader.h\ -./../../../SourceFiles/codegen/common/cpp_file.h\ -./../../../SourceFiles/codegen/common/logging.h\ -./../../../SourceFiles/codegen/numbers/generator.h\ -./../../../SourceFiles/codegen/numbers/options.h\ -./../../../SourceFiles/codegen/numbers/parsed_file.h\ +./../../../SourceFiles/codegen/common/basic_tokenized_file.h \ +./../../../SourceFiles/codegen/common/checked_utf8_string.h \ +./../../../SourceFiles/codegen/common/clean_file.h \ +./../../../SourceFiles/codegen/common/clean_file_reader.h \ +./../../../SourceFiles/codegen/common/cpp_file.h \ +./../../../SourceFiles/codegen/common/logging.h \ +./../../../SourceFiles/codegen/numbers/generator.h \ +./../../../SourceFiles/codegen/numbers/options.h \ +./../../../SourceFiles/codegen/numbers/parsed_file.h \ ./../../../SourceFiles/codegen/numbers/processor.h diff --git a/Telegram/build/qmake/codegen_style/codegen_style.pro b/Telegram/build/qmake/codegen_style/codegen_style.pro index ebfdd1ebee..9b5f4405de 100644 --- a/Telegram/build/qmake/codegen_style/codegen_style.pro +++ b/Telegram/build/qmake/codegen_style/codegen_style.pro @@ -21,31 +21,31 @@ QMAKE_CXXFLAGS_WARN_ON += -Wno-missing-field-initializers TEMPLATE = app SOURCES += \ -./../../../SourceFiles/codegen/common/basic_tokenized_file.cpp\ -./../../../SourceFiles/codegen/common/checked_utf8_string.cpp\ -./../../../SourceFiles/codegen/common/clean_file.cpp\ -./../../../SourceFiles/codegen/common/cpp_file.cpp\ -./../../../SourceFiles/codegen/common/logging.cpp\ -./../../../SourceFiles/codegen/style/generator.cpp\ -./../../../SourceFiles/codegen/style/main.cpp\ -./../../../SourceFiles/codegen/style/module.cpp\ -./../../../SourceFiles/codegen/style/options.cpp\ -./../../../SourceFiles/codegen/style/parsed_file.cpp\ -./../../../SourceFiles/codegen/style/processor.cpp\ -./../../../SourceFiles/codegen/style/sprite_generator.cpp\ +./../../../SourceFiles/codegen/common/basic_tokenized_file.cpp \ +./../../../SourceFiles/codegen/common/checked_utf8_string.cpp \ +./../../../SourceFiles/codegen/common/clean_file.cpp \ +./../../../SourceFiles/codegen/common/cpp_file.cpp \ +./../../../SourceFiles/codegen/common/logging.cpp \ +./../../../SourceFiles/codegen/style/generator.cpp \ +./../../../SourceFiles/codegen/style/main.cpp \ +./../../../SourceFiles/codegen/style/module.cpp \ +./../../../SourceFiles/codegen/style/options.cpp \ +./../../../SourceFiles/codegen/style/parsed_file.cpp \ +./../../../SourceFiles/codegen/style/processor.cpp \ +./../../../SourceFiles/codegen/style/sprite_generator.cpp \ ./../../../SourceFiles/codegen/style/structure_types.cpp HEADERS += \ -./../../../SourceFiles/codegen/common/basic_tokenized_file.h\ -./../../../SourceFiles/codegen/common/checked_utf8_string.h\ -./../../../SourceFiles/codegen/common/clean_file.h\ -./../../../SourceFiles/codegen/common/clean_file_reader.h\ -./../../../SourceFiles/codegen/common/cpp_file.h\ -./../../../SourceFiles/codegen/common/logging.h\ -./../../../SourceFiles/codegen/style/generator.h\ -./../../../SourceFiles/codegen/style/module.h\ -./../../../SourceFiles/codegen/style/options.h\ -./../../../SourceFiles/codegen/style/parsed_file.h\ -./../../../SourceFiles/codegen/style/processor.h\ -./../../../SourceFiles/codegen/style/sprite_generator.h\ +./../../../SourceFiles/codegen/common/basic_tokenized_file.h \ +./../../../SourceFiles/codegen/common/checked_utf8_string.h \ +./../../../SourceFiles/codegen/common/clean_file.h \ +./../../../SourceFiles/codegen/common/clean_file_reader.h \ +./../../../SourceFiles/codegen/common/cpp_file.h \ +./../../../SourceFiles/codegen/common/logging.h \ +./../../../SourceFiles/codegen/style/generator.h \ +./../../../SourceFiles/codegen/style/module.h \ +./../../../SourceFiles/codegen/style/options.h \ +./../../../SourceFiles/codegen/style/parsed_file.h \ +./../../../SourceFiles/codegen/style/processor.h \ +./../../../SourceFiles/codegen/style/sprite_generator.h \ ./../../../SourceFiles/codegen/style/structure_types.h