Should probably add a cast to `size_t` here - it's unsigned, so some compilers may bitch about the implicit conversion.