Version 0.002001.
[p5sagit/Devel-Declare.git] / Declare.xs
index 142a816..7bff0c9 100644 (file)
@@ -118,10 +118,11 @@ void dd_set_linestr(pTHX_ char* new_value) {
   int new_len = strlen(new_value);
   char* old_linestr = SvPVX(PL_linestr);
 
-  SvGROW(PL_linestr, new_len);
-
-  if (SvPVX(PL_linestr) != old_linestr)
+  if (SvLEN(PL_linestr) < new_len) {
     croak("forced to realloc PL_linestr for line %s, bailing out before we crash harder", SvPVX(PL_linestr));
+  }
+
+  SvGROW(PL_linestr, new_len);
 
   memcpy(SvPVX(PL_linestr), new_value, new_len+1);