07: C: Faster number conversion
This commit is contained in:
parent
5cb23bf245
commit
824fe43fe6
|
@ -5,6 +5,7 @@
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
uint32_t fnv1a_32(const char *buf, size_t len)
|
uint32_t fnv1a_32(const char *buf, size_t len)
|
||||||
{
|
{
|
||||||
|
@ -80,7 +81,8 @@ int main(int argc, char **argv) {
|
||||||
} else if (l[0] == 'd') {
|
} else if (l[0] == 'd') {
|
||||||
addent(current, l + 4);
|
addent(current, l + 4);
|
||||||
} else {
|
} else {
|
||||||
size_t sz = strtoul(l, NULL, 10);
|
size_t sz = 0;
|
||||||
|
while (isdigit(*l)) sz = 10 * sz + (*l++ - '0');
|
||||||
entry *f = current;
|
entry *f = current;
|
||||||
for (; f->parent; f = f->parent)
|
for (; f->parent; f = f->parent)
|
||||||
f->size += sz;
|
f->size += sz;
|
||||||
|
|
Loading…
Reference in New Issue