blob: 2ba5c15e99777c7b72aa9471cdc470f20d46b141 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
--- ClearSilver.xs.orig 2008-10-04 15:16:18.000000000 +0000
+++ ClearSilver.xs 2008-10-04 15:20:37.000000000 +0000
@@ -401,7 +401,11 @@
ClearSilver::CS cs
CODE:
{
- SV *str = newSV(0);
+ SV *str = newSV(1);
+ SvLEN_set(str, 0);
+ SvCUR_set(str, 0);
+ SvPOK_on(str);
+
cs->err = cs_render(cs->cs, str, output);
if (cs->err == STATUS_OK) {
ST(0) = sv_2mortal(str);
@@ -439,7 +443,7 @@
CODE:
do {
len = strlen(in_str);
- cs_str = (char *)malloc(len);
+ cs_str = (char *)malloc(len + 1);
if (!cs_str) {
RETVAL = 0;
break;
@@ -448,7 +452,8 @@
cs->err = cs_parse_string(cs->cs, cs_str, len);
if (cs->err != STATUS_OK)
RETVAL = 0;
- RETVAL = 1;
+ else
+ RETVAL = 1;
} while (0);
OUTPUT:
RETVAL
|