void bar(unsigned char * buffer) {
buffer[49] = 65;
}
####
use strict;
use warnings;
use Devel::Peek;
use Inline C =><<'EOC';
void foo(SV * buffer) {
char *data = "Hello there";
sv_setpv(buffer, data);
}
void bar(unsigned char * buffer) {
buffer[49] = 65;
}
void _set_CUR(SV * buffer, int bytes) {
SvCUR_set(buffer, bytes);
}
EOC
my $buffer = 'z' x 60;
Dump $buffer;
foo($buffer);
Dump $buffer;
bar($buffer);
_set_CUR($buffer, 60); # Ensure that Devel::Peek::Dump will display all 60 bytes.
Dump $buffer;
####
SV = PV(0x254ba8dbf08) at 0x254ba920660
REFCNT = 1
FLAGS = (POK,pPOK)
PV = 0x254bce10dc8 "Hello there\x00zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzAzzzzzzzzzz"\0
CUR = 60
LEN = 62
####
SV = PV(0x224fe4c0aa0) at 0x224fe4f4cd0
REFCNT = 1
FLAGS = (POK,pPOK)
PV = 0x22480c0e170 "Hello there\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\r\x8B7\xBC\x00\xF8\x00\x88\xC0\x82\x9F\x80$\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10A\x8D\x80$\x02\x00\x00\x00\xB5K\xFE"
CUR = 60
LEN = 16