- {
- size_t rq = MP_LEN(a) + 2;
- if (MP_LEN(b) > rq)
- rq = MP_LEN(b);
-
- b = MP_COPY(b);
- if (r == a) {
- MP_SPLIT(a);
- a = r = MP_COPY(a);
- MP_ENSURE(r, MP_LEN(r) + 2);
- } else {
- a = MP_COPY(a);
- MP_MODIFY(r, MP_LEN(a) + 2);
- memcpy(r->v, a->v, MPWS(MP_LEN(a)));
- memset(r->v + MP_LEN(a), 0, MPWS(2));
- }
- }