00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <config.h>
00019
00020 #include <drizzled/internal/my_sys.h>
00021 #include <drizzled/internal/m_string.h>
00022
00023 namespace drizzled
00024 {
00025 namespace internal
00026 {
00027
00028 void my_string_ptr_sort(unsigned char *base, uint32_t items, size_t size)
00029 {
00030 #if INT_MAX > 65536L
00031 unsigned char **ptr= NULL;
00032
00033 if (size <= 20 && items >= 1000 && items < 100000 &&
00034 (ptr= (unsigned char**) malloc(items*sizeof(char*))))
00035 {
00036 radixsort_for_str_ptr((unsigned char**) base,items,size,ptr);
00037 free((unsigned char*) ptr);
00038 }
00039 else
00040 #endif
00041 {
00042 if (size && items)
00043 {
00044 my_qsort2(base,items, sizeof(unsigned char*), get_ptr_compare(size),
00045 (void*) &size);
00046 }
00047 }
00048 }
00049
00050 }
00051 }