From 3b16f66bf7bb0b9d5a466d85544f71c9727ff4d3 Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 6 Mar 2004 06:15:11 +0000 Subject: * ext/strscan/strscan.c (strscan_init_copy): struct re_registers must not be bitwise copied. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/strscan/strscan.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'ext') diff --git a/ext/strscan/strscan.c b/ext/strscan/strscan.c index b60cdb852f..db1a9c64e6 100644 --- a/ext/strscan/strscan.c +++ b/ext/strscan/strscan.c @@ -240,7 +240,13 @@ strscan_init_copy(vself, vorig) Data_Get_Struct(vself, struct strscanner, self); check_strscan(vorig); Data_Get_Struct(vorig, struct strscanner, orig); - memmove(self, orig, sizeof(struct strscanner)); + if (self != orig) { + self->flags = orig->flags; + self->str = orig->str; + self->prev = orig->prev; + self->curr = orig->curr; + re_copy_registers(&self->regs, &orig->regs); + } return vself; } -- cgit v1.2.3