Ecere Software
/
sdk
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
cad1603
)
ecere/containers/Array: Fixed quick sort issues on Emscripten
author
Jerome St-Louis
<jerome@ecere.com>
Wed, 12 Oct 2016 16:18:19 +0000
(12:18 -0400)
committer
Jerome St-Louis
<jerome@ecere.com>
Sat, 22 Oct 2016 15:13:33 +0000
(11:13 -0400)
ecere/src/com/containers/Array.ec
patch
|
blob
|
history
diff --git
a/ecere/src/com/containers/Array.ec
b/ecere/src/com/containers/Array.ec
index
d792b22
..
096bde3
100644
(file)
--- a/
ecere/src/com/containers/Array.ec
+++ b/
ecere/src/com/containers/Array.ec
@@
-30,14
+30,14
@@
private:
static inline void quickSort(void *base, uintsize nel, uintsize w, char * piv, int (*compare)(void *, const void *, const void *), void *arg)
{
#define MAX_LEVELS 300
static inline void quickSort(void *base, uintsize nel, uintsize w, char * piv, int (*compare)(void *, const void *, const void *), void *arg)
{
#define MAX_LEVELS 300
-
u
intsize beg[MAX_LEVELS], end[MAX_LEVELS];
+ intsize beg[MAX_LEVELS], end[MAX_LEVELS];
int frame = 0;
beg[0] = 0;
end[0] = nel;
while(frame >= 0)
{
int frame = 0;
beg[0] = 0;
end[0] = nel;
while(frame >= 0)
{
-
u
intsize L = beg[frame], R = end[frame]-1;
+ intsize L = beg[frame], R = end[frame]-1;
if(L < R)
{
memcpy(piv, (char *)base + L*w, w);
if(L < R)
{
memcpy(piv, (char *)base + L*w, w);
@@
-64,7
+64,7
@@
static inline void quickSort(void *base, uintsize nel, uintsize w, char * piv, i
// Process smaller partition first
if(end[frame]-beg[frame] > end[frame-1]-beg[frame-1])
{
// Process smaller partition first
if(end[frame]-beg[frame] > end[frame-1]-beg[frame-1])
{
-
u
intsize swap;
+ intsize swap;
swap = beg[frame]; beg[frame] = beg[frame-1]; beg[frame-1] = swap;
swap = end[frame]; end[frame] = end[frame-1]; end[frame-1] = swap;
}
swap = beg[frame]; beg[frame] = beg[frame-1]; beg[frame-1] = swap;
swap = end[frame]; end[frame] = end[frame-1]; end[frame-1] = swap;
}