parser->parse_file (init, file_name, out_file);
bool error = parser->error_level_;
- scm_gc_unprotect_object (parser->self_scm ());
+ parser->unprotect ();
parser = 0;
if (error)
/* TODO: pass renamed input file too. */
sources.set_path (&global_path);
Lily_parser *parser = new Lily_parser (&sources);
parser->parse_string (ly_scm2string (ly_code));
- scm_gc_unprotect_object (parser->self_scm ());
+ parser->unprotect ();
parser = 0;
return SCM_UNSPECIFIED;
Lily_parser *parser = unsmob_lily_parser (parser_smob);
Lily_parser *clone = new Lily_parser (*parser);
- return scm_gc_unprotect_object (clone->self_scm ());
+ return clone->unprotect ();
}
LY_DEFINE (ly_parser_define, "ly:parser-define!",
Lily_parser *p = unsmob_lily_parser (parser);
SCM_ASSERT_TYPE (p, parser, SCM_ARG1, __FUNCTION__, "Lilypond parser");
- return scm_from_locale_string (p->output_basename_.to_str0 ());
+ return scm_makfrom0str (p->output_basename_.to_str0 ());
}