I recently tracked down a difficult bug that occured only when one of my
XS modules was used in conjunction with certain other XS modules (e.g.,
XML::Parser or String::Approx).  It turned out to be due to the
incorrect assumption that PL_na will always be zero.  Specifically, we used

  newSVpv (string, PL_na) // do not do this

when we didn't have the string's length.  This breaks if some other XS
module writes to PL_na (via SvPV, most likely).  So always use an
explicit zero instead:

  newSVpv (string, 0)

Reply via email to