diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-03-06 06:15:11 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-03-06 06:15:11 +0000 |
| commit | d7b6a4b3e2394630b358925bb54c041b4269926d (patch) | |
| tree | ded08303dd0241dbbbb0d8c0130e0bb88e82e541 | |
| parent | db26770d6ba4a3d3f92e2525daad220bf364c73d (diff) | |
| download | ruby-d7b6a4b3e2394630b358925bb54c041b4269926d.tar.gz ruby-d7b6a4b3e2394630b358925bb54c041b4269926d.tar.xz ruby-d7b6a4b3e2394630b358925bb54c041b4269926d.zip | |
* ext/strscan/strscan.c (strscan_init_copy): struct re_registers must
not be bitwise copied.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | ext/strscan/strscan.c | 8 |
2 files changed, 11 insertions, 2 deletions
@@ -1,9 +1,12 @@ -Sat Mar 6 14:27:32 2004 Nobuyoshi Nakada <nobu@ruby-lang.org> +Sat Mar 6 15:15:05 2004 Nobuyoshi Nakada <nobu@ruby-lang.org> * ext/strscan/depend: depends on re.h and regex.h. * ext/strscan/strscan.c: no version check needed. + * ext/strscan/strscan.c (strscan_init_copy): struct re_registers must + not be bitwise copied. + Sat Mar 6 11:14:33 2004 David Black <dblack@wobblini.net> * lib/scanf.rb: refixed the previous fix in IO#block_scanf diff --git a/ext/strscan/strscan.c b/ext/strscan/strscan.c index b60cdb852..db1a9c64e 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; } |
