aboutsummaryrefslogtreecommitdiffstats
path: root/src/ralloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ralloc.c')
-rw-r--r--src/ralloc.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/ralloc.c b/src/ralloc.c
index 13587b9ffd4..896ad9f3155 100644
--- a/src/ralloc.c
+++ b/src/ralloc.c
@@ -636,7 +636,8 @@ resize_bloc (bloc_ptr bloc, SIZE size)
636 } 636 }
637 else 637 else
638 { 638 {
639 memmove (b->new_data, b->data, b->size); 639 if (b->new_data != b->data)
640 memmove (b->new_data, b->data, b->size);
640 *b->variable = b->data = b->new_data; 641 *b->variable = b->data = b->new_data;
641 } 642 }
642 } 643 }
@@ -647,7 +648,8 @@ resize_bloc (bloc_ptr bloc, SIZE size)
647 } 648 }
648 else 649 else
649 { 650 {
650 memmove (bloc->new_data, bloc->data, old_size); 651 if (bloc->new_data != bloc->data)
652 memmove (bloc->new_data, bloc->data, old_size);
651 memset ((char *) bloc->new_data + old_size, 0, size - old_size); 653 memset ((char *) bloc->new_data + old_size, 0, size - old_size);
652 *bloc->variable = bloc->data = bloc->new_data; 654 *bloc->variable = bloc->data = bloc->new_data;
653 } 655 }
@@ -663,7 +665,8 @@ resize_bloc (bloc_ptr bloc, SIZE size)
663 } 665 }
664 else 666 else
665 { 667 {
666 memmove (b->new_data, b->data, b->size); 668 if (b->new_data != b->data)
669 memmove (b->new_data, b->data, b->size);
667 *b->variable = b->data = b->new_data; 670 *b->variable = b->data = b->new_data;
668 } 671 }
669 } 672 }
@@ -816,7 +819,8 @@ r_alloc_sbrk (long int size)
816 header. */ 819 header. */
817 for (b = last_bloc; b != NIL_BLOC; b = b->prev) 820 for (b = last_bloc; b != NIL_BLOC; b = b->prev)
818 { 821 {
819 memmove (b->new_data, b->data, b->size); 822 if (b->new_data != b->data)
823 memmove (b->new_data, b->data, b->size);
820 *b->variable = b->data = b->new_data; 824 *b->variable = b->data = b->new_data;
821 } 825 }
822 826
@@ -862,7 +866,8 @@ r_alloc_sbrk (long int size)
862 866
863 for (b = first_bloc; b != NIL_BLOC; b = b->next) 867 for (b = first_bloc; b != NIL_BLOC; b = b->next)
864 { 868 {
865 memmove (b->new_data, b->data, b->size); 869 if (b->new_data != b->data)
870 memmove (b->new_data, b->data, b->size);
866 *b->variable = b->data = b->new_data; 871 *b->variable = b->data = b->new_data;
867 } 872 }
868 } 873 }