649{
650 int len = a[0];
652 int *result_vp =
result.data();
653 int *orig_result_vp = result_vp;
654 result_vp++;
655
656 if (len > 1)
657 {
658 int v = a[1];
659 int e = 1;
660
661 for (int i = 2; i < len; i++)
662 {
663 if (v == a[i])
664 e++;
665 else
666 {
667 *result_vp++ = v;
668 *result_vp++ = e;
669 v = a[i];
670 e = 1;
671 }
672 }
673 *result_vp++ = v;
674 *result_vp++ = e;
675 }
676
677 int newlen = static_cast<int>(result_vp - orig_result_vp);
678 *orig_result_vp = newlen;
680}
VALGRIND_MAKE_MEM_DEFINED & result(result)