X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fbook.cc;h=48a5a4c5524c49dbfd95b0977b9104872ff69bff;hb=de94141c98300335d2675fff9e5a4cb9b42fccac;hp=3a84865462e4795f618fa995a477dca33d92e558;hpb=0387f04497978e37b335a8b99eec905499d6ad0f;p=lilypond.git diff --git a/lily/book.cc b/lily/book.cc index 3a84865462..48a5a4c552 100644 --- a/lily/book.cc +++ b/lily/book.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2008 Han-Wen Nienhuys + (c) 1997--2009 Han-Wen Nienhuys */ #include "book.hh" @@ -200,9 +200,14 @@ Book::process_bookparts (Paper_book *output_paper_book, Output_def *paper, Outpu { Paper_book *paper_book_part = book->process (paper, layout, output_paper_book); if (paper_book_part) - output_paper_book->add_bookpart (paper_book_part->self_scm ()); + { + output_paper_book->add_bookpart (paper_book_part->self_scm ()); + paper_book_part->unprotect (); + } } } + /* In a Paper_book, bookparts are stored in straight order */ + output_paper_book->bookparts_ = scm_reverse_x (output_paper_book->bookparts_, SCM_EOL); } void @@ -263,6 +268,7 @@ Book::process (Output_def *default_paper, paper_book->paper_->parent_ = parent_part->paper_; } paper_book->header_ = header_; + scaled_bookdef->unprotect (); if (scm_is_pair (bookparts_)) {