Changes to allow reuse of copied rows/columns

This change also reflect the allocate-if-inadequate approach intended
for the rest of the c-taking methods.