Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[gc] fix a MS segv in Parrot_io_write_s
When certain functions cause a GC, the local string buffers may get moved away, but local STRING* variables or worse, strings inside a StringHandle may still point to the old location. Lock the GC then for this section, mostly during IO writing to string handles, when the handle needs to realloc its buffer (the stringhandle). But reading into a buffer is also problematic. we really should know the size beforehand. One way to fix GH #1196, lock the GC sweep in those cases. The other variants would be: - lock the whole GC via Parrot_block_GC_mark - unset the PObj_is_movable flag in the STRING that it may not be moved, as it is still locally referenced. Remaining ms test failure: t/pmc/fixedstringarray.t
- Loading branch information
Reini Urban
committed
Feb 1, 2015
1 parent
d56c942
commit a88abb9
Showing
2 changed files
with
7 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
/* | ||
Copyright (C) 2010-2014, Parrot Foundation. | ||
Copyright (C) 2010-2015, Parrot Foundation. | ||
=head1 NAME | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters