JSON-XS
view release on metacpan or search on metacpan
// security workaround added somewhere in 5.8.x
// that randomises hash orderings
if (enc->json.flags & F_CANONICAL && !SvRMAGICAL (hv))
{
int count = hv_iterinit (hv);
if (SvMAGICAL (hv))
{
// need to count by iterating. could improve by dynamically building the vector below
// but I don't care for the speed of this special case.
// note also that we will run into undefined behaviour when the two iterations
// do not result in the same count, something I might care for in some later release.
count = 0;
while (hv_iternext (hv))
++count;
hv_iterinit (hv);
}
if (count)
( run in 0.351 second using v1.01-cache-2.11-cpan-71847e10f99 )