mirror of
https://git.wownero.com/wownero/wownero-puddle.git
synced 2024-08-15 01:03:20 +00:00
perform full check on bag elements
This commit is contained in:
parent
b882424504
commit
91e17d4c58
1 changed files with 13 additions and 3 deletions
|
@ -86,6 +86,16 @@ gbag_free(gbag_t *gb)
|
||||||
free(gb);
|
free(gb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
gbag_occupied(gbag_t *gb, char *el)
|
||||||
|
{
|
||||||
|
char *s = el;
|
||||||
|
char *e = el + gb->z;
|
||||||
|
while (s < e)
|
||||||
|
if (*s++) return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void *
|
void *
|
||||||
gbag_get(gbag_t *gb)
|
gbag_get(gbag_t *gb)
|
||||||
{
|
{
|
||||||
|
@ -99,7 +109,7 @@ gbag_get(gbag_t *gb)
|
||||||
scan:
|
scan:
|
||||||
while(gb->n < end)
|
while(gb->n < end)
|
||||||
{
|
{
|
||||||
if (!*gb->n)
|
if (!gbag_occupied(gb, gb->n))
|
||||||
{
|
{
|
||||||
gb->ref++;
|
gb->ref++;
|
||||||
rv = gb->n;
|
rv = gb->n;
|
||||||
|
@ -184,7 +194,7 @@ gbag_first(gbag_t *gb)
|
||||||
gb->ni = s;
|
gb->ni = s;
|
||||||
while (s<e)
|
while (s<e)
|
||||||
{
|
{
|
||||||
if (*s)
|
if (gbag_occupied(gb, s))
|
||||||
return s;
|
return s;
|
||||||
s += gb->z;
|
s += gb->z;
|
||||||
gb->ni = s;
|
gb->ni = s;
|
||||||
|
@ -202,7 +212,7 @@ gbag_next(gbag_t *gb, void* from)
|
||||||
while (s<e)
|
while (s<e)
|
||||||
{
|
{
|
||||||
gb->ni += gb->z;
|
gb->ni += gb->z;
|
||||||
if (*s)
|
if (gbag_occupied(gb, s))
|
||||||
return s;
|
return s;
|
||||||
s += gb->z;
|
s += gb->z;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue