fix a stupid bug: calculate the size to malloc,
    just use the first uint64's size, no ->next