diff --git a/src/containers/pideque.h b/src/containers/pideque.h index 29cc4b4b..62b257c5 100755 --- a/src/containers/pideque.h +++ b/src/containers/pideque.h @@ -289,7 +289,7 @@ public: typedef int (*CompareFunc)(const T * , const T * ); static int compare_func(const T * t0, const T * t1) {return (*t0) < (*t1) ? -1 : ((*t0) == (*t1) ? 0 : 1);} - PIDeque & sort(CompareFunc compare = compare_func) {qsort(pid_data + pid_start, pid_size, sizeof(T), (int(*)(const void * , const void * ))compare); return *this;} + PIDeque & sort(CompareFunc compare = compare_func) {piqsort(pid_data + pid_start, pid_size, sizeof(T), (int(*)(const void * , const void * ))compare); return *this;} PIDeque & enlarge(llong pid_size) {llong ns = size_s() + pid_size; if (ns <= 0) clear(); else resize(size_t(ns)); return *this;} diff --git a/src/containers/pivector.h b/src/containers/pivector.h index 441a6995..e4717f32 100755 --- a/src/containers/pivector.h +++ b/src/containers/pivector.h @@ -268,7 +268,7 @@ public: typedef int (*CompareFunc)(const T * , const T * ); static int compare_func(const T * t0, const T * t1) {return (*t0) < (*t1) ? -1 : ((*t0) == (*t1) ? 0 : 1);} - PIVector & sort(CompareFunc compare = compare_func) {qsort(piv_data, piv_size, sizeof(T), (int(*)(const void * , const void * ))compare); return *this;} + PIVector & sort(CompareFunc compare = compare_func) {piqsort(piv_data, piv_size, sizeof(T), (int(*)(const void * , const void * ))compare); return *this;} PIVector & enlarge(llong piv_size) {llong ns = size_s() + piv_size; if (ns <= 0) clear(); else resize(size_t(ns)); return *this;} @@ -469,7 +469,7 @@ public: void resize(uint size, const T & new_type = T()); PIVector & enlarge(uint size); void clear(); - PIVector & sort(CompareFunc compare = compare_func) {qsort(&at(0), _stlc::size(), sizeof(T), (int(*)(const void * , const void * ))compare); return *this;} + PIVector & sort(CompareFunc compare = compare_func) {piqsort(&at(0), _stlc::size(), sizeof(T), (int(*)(const void * , const void * ))compare); return *this;} PIVector & fill(const T & t) {_stlc::assign(_stlc::size(), t); return *this;} T & back(); const T & back() const; @@ -497,7 +497,7 @@ public: #else _CVector & enlarge(int size_) {int ns = size_s() + size_; if (ns <= 0) _stlc::clear(); else _stlc::resize(ns); return *this;} - _CVector & sort(CompareFunc compare = compare_func) {qsort(&at(0), _stlc::size(), sizeof(T), (int(*)(const void * , const void * ))compare); return *this;} + _CVector & sort(CompareFunc compare = compare_func) {piqsort(&at(0), _stlc::size(), sizeof(T), (int(*)(const void * , const void * ))compare); return *this;} _CVector & fill(const T & t) {_stlc::assign(_stlc::size(), t); return *this;} _CVector & pop_front() {_stlc::erase(_stlc::begin()); return *this;} _CVector & push_front(const T & t) {_stlc::insert(_stlc::begin(), t); return *this;} diff --git a/src/core/piincludes.cpp b/src/core/piincludes.cpp index 2eef6634..8af9afcb 100755 --- a/src/core/piincludes.cpp +++ b/src/core/piincludes.cpp @@ -247,3 +247,8 @@ int main(int argc, char * argv[]) { /*! \page using_advanced Advanced using * Sorry, creativity crysis xD */ + + +void piqsort(void * base, size_t num, size_t size, int (*compar)(const void *, const void *)) { + qsort(base, num, size, compar); +} diff --git a/src/core/piincludes.h b/src/core/piincludes.h index 5c0e5483..461c9297 100755 --- a/src/core/piincludes.h +++ b/src/core/piincludes.h @@ -46,6 +46,8 @@ PIString errorString(); void errorClear(); +void piqsort(void* base, size_t num, size_t size, int (*compar)(const void*,const void*)); + /// Return readable version of PIP PIString PIPVersion(); diff --git a/src/core/piincludes_p.h b/src/core/piincludes_p.h index 7f2dfe8e..88800d3a 100644 --- a/src/core/piincludes_p.h +++ b/src/core/piincludes_p.h @@ -30,7 +30,9 @@ typedef void(*PINtSetTimerResolution)(ULONG, BOOLEAN, PULONG); # include #endif #include +#include #include +#include #include #include