From 93f1e952e7fd7ce8b03df7eef0c90b4d0873cf8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Mon, 10 Apr 2017 09:57:01 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/pip@334 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5 --- CMakeLists.txt | 3 ++- main.cpp | 8 +++---- src/console/piterminal.cpp | 1 + src/containers/pideque.h | 7 +++++- src/core/pistring.h | 46 +++++++++++++++++++------------------- 5 files changed, 36 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d8c8585..67b0bed8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -189,7 +189,8 @@ if (WIN32) generate_export_header(pip) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /O2 /Ob2 /Ot") else () - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -march=native") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3") + #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native") endif () else () set(${CMAKE_CXX_FLAGS} "${CMAKE_CXX_FLAGS} -O3 -march=native") diff --git a/main.cpp b/main.cpp index ff0c9f4f..794eb8ad 100644 --- a/main.cpp +++ b/main.cpp @@ -41,16 +41,16 @@ int asize(ssize_t s, size_t pid_rsize) { return (1 << t); } int main(int argc, char *argv[]) { - /*PIFFTWf fft; + PIFFTWf fft; PIVector in; for (int i = 0; i < 32; ++i) in << i%10; PIVector out = fft.calcFFT(in); - piCout << out;*/ - for (int i = 0; i < 16; ++i) { + piCout << out; + /*for (int i = 0; i < 16; ++i) { piCout << asize(i, 100); } - return 0; + return 0;*/ /*__S__ s, s1; s.text = "123"; s.i = -1; diff --git a/src/console/piterminal.cpp b/src/console/piterminal.cpp index e040b309..5cbebea0 100644 --- a/src/console/piterminal.cpp +++ b/src/console/piterminal.cpp @@ -20,6 +20,7 @@ #include "piterminal.h" #ifdef WINDOWS # include "pisharedmemory.h" +# include # include # include #else diff --git a/src/containers/pideque.h b/src/containers/pideque.h index 707e1b9d..79c96f2c 100755 --- a/src/containers/pideque.h +++ b/src/containers/pideque.h @@ -336,7 +336,12 @@ private: if (pid_rsize + pid_rsize >= size_t(s) && pid_rsize < size_t(s)) return pid_rsize + pid_rsize; ssize_t t = 0, s_ = s - 1; - while (s_ >> t) ++t; + //printf("asize .. %p rs=%d ns=%d s_=%d t=%d \n", this, pid_rsize, s, s_, t); + while (s_ >> t) { + ++t; + //printf("asize ++ %p rs=%d ns=%d s_=%d t=%d \n", this, pid_rsize, s, s_, t); + } + //printf("asize ok %p rs=%d ns=%d s_=%d t=%d \n", this, pid_rsize, s, s_, t); return (1 << t); } inline void newT(T * dst, const T * src, size_t s) { diff --git a/src/core/pistring.h b/src/core/pistring.h index 2b76528a..f812d803 100755 --- a/src/core/pistring.h +++ b/src/core/pistring.h @@ -37,7 +37,7 @@ class PIP_EXPORT PIString: public PIDeque friend PIByteArray & operator >>(PIByteArray & s, PIString & v); public: //! Contructs an empty string - PIString(): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--;} + PIString(): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--;} //inline PIString & operator +=(const char c) {push_back(c); return *this;} PIString & operator +=(const PIChar & c) {push_back(c); return *this;} @@ -51,47 +51,47 @@ public: #endif //PIString(const char c) {*this += c;} - PIString(const PIString & o): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this += o;} + PIString(const PIString & o): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this += o;} //! Contructs string with single symbol "c" - PIString(const PIChar & c): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this += c;} - PIString(const char c): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this += PIChar(c);} + PIString(const PIChar & c): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this += c;} + PIString(const char c): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this += PIChar(c);} /*! \brief Contructs string from c-string "str" * \details "str" should be null-terminated\n * Example: \snippet pistring.cpp PIString(char * ) */ - PIString(const char * str): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this += str;} + PIString(const char * str): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this += str;} /*! \brief Contructs string from \c wchar_t c-string "str" * \details "str" should be null-terminated\n * Example: \snippet pistring.cpp PIString(wchar_t * ) */ - PIString(const wchar_t * str): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this += str;} + PIString(const wchar_t * str): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this += str;} //! Contructs string from std::string "str" - PIString(const std::string & str): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this += str;} + PIString(const std::string & str): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this += str;} #ifdef HAS_LOCALE - PIString(const wstring & str): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this += str;} + PIString(const wstring & str): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this += str;} #endif //! Contructs string from byte array "ba" - PIString(const PIByteArray & ba): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this += ba;} + PIString(const PIByteArray & ba): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this += ba;} //! \brief Contructs string from "len" characters of buffer "str" - PIString(const PIChar * str, const int len): PIDeque(str, size_t(len)) {/*reserve(256); */piMonitor.strings++; piMonitor.containers--;} + PIString(const PIChar * str, const int len): PIDeque(str, size_t(len)) {/*reserve(4); */piMonitor.strings++; piMonitor.containers--;} /*! \brief Contructs string from "len" characters of buffer "str" * \details Example: \snippet pistring.cpp PIString(char * , int) */ - PIString(const char * str, const int len): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this += std::string(str, len);} + PIString(const char * str, const int len): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this += std::string(str, len);} /*! \brief Contructs string as sequence of characters "c" of buffer with length "len" * \details Example: \snippet pistring.cpp PIString(int, char) */ - PIString(const int len, const char c): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; for (int i = 0; i < len; ++i) push_back(c);} + PIString(const int len, const char c): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; for (int i = 0; i < len; ++i) push_back(c);} /*! \brief Contructs string as sequence of symbols "c" of buffer with length "len" * \details Example: \snippet pistring.cpp PIString(int, PIChar) */ - PIString(const int len, const PIChar & c): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; for (int i = 0; i < len; ++i) push_back(c);} + PIString(const int len, const PIChar & c): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; for (int i = 0; i < len; ++i) push_back(c);} /* #ifdef WINDOWS PIString(const WCHAR * str): PIDeque() {piMonitor.strings++; piMonitor.containers--; *this += str;} @@ -100,16 +100,16 @@ public: #endif */ - PIString(const short & value): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} - PIString(const ushort & value): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} - PIString(const int & value): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} - PIString(const uint & value): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} - PIString(const long & value): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} - PIString(const ulong & value): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} - PIString(const llong & value): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} - PIString(const ullong & value): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} - PIString(const float & value): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} - PIString(const double & value): PIDeque() {/*reserve(256); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} + PIString(const short & value): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} + PIString(const ushort & value): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} + PIString(const int & value): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} + PIString(const uint & value): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} + PIString(const long & value): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} + PIString(const ulong & value): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} + PIString(const llong & value): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} + PIString(const ullong & value): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} + PIString(const float & value): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} + PIString(const double & value): PIDeque() {/*reserve(4); */piMonitor.strings++; piMonitor.containers--; *this = fromNumber(value);} //~PIString() {piMonitor.strings--; piMonitor.containers++;}