Explicitly state msgpack doesn't modify char* buffers from RSTRING_PTR

From what I could investigate, msgpack doesn't modify char* buffers
obtained from RSTRING_PTR. This means that on Rubinius we don't have to
copy back and forth the buffer to make sure it's also updated on the
Ruby side.

This copying of buffers is a similar problem as the RARRAY_PTR problem,
because it is not safe to expose GC'ed memory on Rubinius to extensions
since it can move due to Rubinius having a moving GC.
This commit is contained in:
Dirkjan Bussink 2012-03-17 12:40:29 +01:00
parent 65c360a2ca
commit 4a0d7f18fd

View File

@ -15,6 +15,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
#define RSTRING_NOT_MODIFIED
#include "ruby.h" #include "ruby.h"
#include "compat.h" #include "compat.h"