]> git.donarmstrong.com Git - lilypond.git/commit
Issue 4365: non-member unsmob<T> replaces T::unsmob and T::is_smob
authorDan Eble <nine.fierce.ballads@gmail.com>
Sat, 2 May 2015 02:21:43 +0000 (22:21 -0400)
committerDan Eble <nine.fierce.ballads@gmail.com>
Sat, 23 May 2015 02:23:26 +0000 (22:23 -0400)
commit0c14539bc83d6bb405141b6f21430b33d1e8fcf0
treee662f6f5dc73fccbba2297f7fdfc877caf0338bf
parente52c5d72fc45e123c8574803ba52871e6fe8a596
Issue 4365: non-member unsmob<T> replaces T::unsmob and T::is_smob

Hide Smob_base<>::is_smob() to prevent the misleading situation of
D::is_smob(S) returning true when S represents an ancestor of D rather
than a D.  This issue was previously worked around by overriding
is_smob in several derived smob classes; that is no longer needed.

LY_ASSERT_SMOB() now returns a smob pointer.  This is not used yet,
but is available for future use to avoid unsmobbing twice.

Smob_base<>::smob_p() is hidden because there doesn't seem to be a
need for it to be public.

Files in lily/include were edited by hand.  Files in lily itself were
processed with the following sed script.

s/\([A-Za-z_]\+\)::derived_unsmob/unsmob<\1>/g
s/derived_unsmob *<\([A-Za-z_]\+\)>/unsmob<\1>/g
s/\([A-Za-z_]\+\)::unsmob/unsmob<\1>/g
s/\([A-Za-z_]\+\)::is_smob/unsmob<\1>/g
s/Input \*\([A-Za-z_]\+\) = unsmob /Input *\1 = unsmob<Input> /g
s/LY_ASSERT_SMOB (\([^)]*\))$/LY_ASSERT_SMOB (\1);/g
283 files changed:
lily/accidental-engraver.cc
lily/accidental-placement.cc
lily/accidental.cc
lily/align-interface.cc
lily/all-font-metrics.cc
lily/ambitus-engraver.cc
lily/arpeggio.cc
lily/articulations.cc
lily/auto-beam-engraver.cc
lily/auto-change-iterator.cc
lily/axis-group-engraver.cc
lily/axis-group-interface-scheme.cc
lily/axis-group-interface.cc
lily/balloon-engraver.cc
lily/balloon.cc
lily/bar-check-iterator.cc
lily/beam-collision-engraver.cc
lily/beam-engraver.cc
lily/beam-quanting.cc
lily/beam.cc
lily/bend-engraver.cc
lily/book-scheme.cc
lily/book.cc
lily/break-align-engraver.cc
lily/break-alignment-interface.cc
lily/break-substitution.cc
lily/breathing-sign.cc
lily/chord-name-engraver.cc
lily/chord-name.cc
lily/clef-engraver.cc
lily/clef-modifier.cc
lily/clef.cc
lily/cluster-engraver.cc
lily/cluster.cc
lily/coherent-ligature-engraver.cc
lily/completion-note-heads-engraver.cc
lily/completion-rest-engraver.cc
lily/constrained-breaking.cc
lily/context-def.cc
lily/context-mod-scheme.cc
lily/context-property.cc
lily/context-scheme.cc
lily/context.cc
lily/custos-engraver.cc
lily/custos.cc
lily/dispatcher-scheme.cc
lily/dispatcher.cc
lily/dot-column-engraver.cc
lily/dot-column.cc
lily/dots-engraver.cc
lily/dots.cc
lily/drum-note-performer.cc
lily/duration-scheme.cc
lily/dynamic-align-engraver.cc
lily/dynamic-engraver.cc
lily/enclosing-bracket.cc
lily/engraver-group.cc
lily/engraver-scheme.cc
lily/engraver.cc
lily/episema-engraver.cc
lily/event-chord-iterator.cc
lily/figured-bass-continuation.cc
lily/figured-bass-engraver.cc
lily/fingering-column.cc
lily/fingering-engraver.cc
lily/flag.cc
lily/font-interface.cc
lily/font-metric-scheme.cc
lily/font-select.cc
lily/footnote-engraver.cc
lily/forbid-break-engraver.cc
lily/function-documentation.cc
lily/global-context-scheme.cc
lily/global-context.cc
lily/grace-engraver.cc
lily/grace-music.cc
lily/grace-spacing-engraver.cc
lily/gregorian-ligature-engraver.cc
lily/grid-line-interface.cc
lily/grid-point-engraver.cc
lily/grob-array-scheme.cc
lily/grob-array.cc
lily/grob-closure.cc
lily/grob-info.cc
lily/grob-pq-engraver.cc
lily/grob-property.cc
lily/grob-scheme.cc
lily/grob.cc
lily/hairpin.cc
lily/hara-kiri-group-spanner.cc
lily/horizontal-bracket.cc
lily/include/engraver.hh
lily/include/global-context.hh
lily/include/item.hh
lily/include/lily-guile-macros.hh
lily/include/listener.hh
lily/include/music.hh
lily/include/paper-score.hh
lily/include/performance.hh
lily/include/performer.hh
lily/include/smobs.hh
lily/include/smobs.tcc
lily/include/spanner.hh
lily/include/stencil.hh
lily/include/stream-event.hh
lily/input-scheme.cc
lily/input-smob.cc
lily/instrument-name-engraver.cc
lily/item-scheme.cc
lily/keep-alive-together-engraver.cc
lily/key-signature-interface.cc
lily/kievan-ligature-engraver.cc
lily/laissez-vibrer-engraver.cc
lily/ledger-line-engraver.cc
lily/ledger-line-spanner.cc
lily/lexer.ll
lily/ligature-engraver.cc
lily/lily-guile.cc
lily/lily-lexer-scheme.cc
lily/lily-lexer.cc
lily/lily-parser-scheme.cc
lily/lily-parser.cc
lily/line-spanner.cc
lily/lyric-combine-music-iterator.cc
lily/lyric-combine-music.cc
lily/lyric-engraver.cc
lily/lyric-extender.cc
lily/lyric-hyphen.cc
lily/measure-grouping-engraver.cc
lily/measure-grouping-spanner.cc
lily/melody-spanner.cc
lily/mensural-ligature-engraver.cc
lily/mensural-ligature.cc
lily/metronome-engraver.cc
lily/midi-control-function-performer.cc
lily/moment-scheme.cc
lily/moment.cc
lily/multi-measure-rest-engraver.cc
lily/multi-measure-rest.cc
lily/music-function-scheme.cc
lily/music-iterator.cc
lily/music-scheme.cc
lily/music-sequence.cc
lily/music-wrapper-iterator.cc
lily/music-wrapper.cc
lily/music.cc
lily/new-fingering-engraver.cc
lily/note-collision.cc
lily/note-column-scheme.cc
lily/note-column.cc
lily/note-head-scheme.cc
lily/note-head.cc
lily/note-heads-engraver.cc
lily/note-name-engraver.cc
lily/note-performer.cc
lily/note-spacing-engraver.cc
lily/note-spacing.cc
lily/open-type-font-scheme.cc
lily/open-type-font.cc
lily/ottava-bracket.cc
lily/ottava-engraver.cc
lily/output-def-scheme.cc
lily/output-def.cc
lily/page-breaking-scheme.cc
lily/page-breaking.cc
lily/page-layout-problem-scheme.cc
lily/page-layout-problem.cc
lily/page-turn-engraver.cc
lily/pango-font-scheme.cc
lily/paper-book-scheme.cc
lily/paper-book.cc
lily/paper-column-engraver.cc
lily/paper-column.cc
lily/paper-def.cc
lily/paper-outputter-scheme.cc
lily/paper-score-scheme.cc
lily/paper-system-scheme.cc
lily/parser.yy
lily/part-combine-iterator.cc
lily/partial-iterator.cc
lily/percent-repeat-engraver.cc
lily/percent-repeat-item.cc
lily/performance-scheme.cc
lily/performer-group.cc
lily/piano-pedal-align-engraver.cc
lily/piano-pedal-bracket.cc
lily/piano-pedal-engraver.cc
lily/pitch-scheme.cc
lily/pitch.cc
lily/pitched-trill-engraver.cc
lily/pointer-group-interface-scheme.cc
lily/pointer-group-interface.cc
lily/prob-scheme.cc
lily/prob.cc
lily/property-iterator.cc
lily/pure-from-neighbor-interface.cc
lily/quote-iterator.cc
lily/relative-octave-check.cc
lily/repeat-tie-engraver.cc
lily/repeated-music.cc
lily/rest-collision-engraver.cc
lily/rest-collision.cc
lily/rest-engraver.cc
lily/rest.cc
lily/rhythmic-head.cc
lily/rhythmic-music-iterator.cc
lily/scale.cc
lily/score-performer.cc
lily/score-scheme.cc
lily/score.cc
lily/script-column.cc
lily/script-interface.cc
lily/self-alignment-interface.cc
lily/semi-tie-column.cc
lily/semi-tie.cc
lily/separating-line-group-engraver.cc
lily/separation-item.cc
lily/sequential-iterator.cc
lily/side-position-interface.cc
lily/simple-closure.cc
lily/simple-spacer.cc
lily/simultaneous-music-iterator.cc
lily/skyline-pair.cc
lily/skyline.cc
lily/slur-proto-engraver.cc
lily/slur-scoring.cc
lily/slur.cc
lily/spaceable-grob.cc
lily/spacing-basic.cc
lily/spacing-determine-loose-columns.cc
lily/spacing-engraver.cc
lily/spacing-interface.cc
lily/spacing-loose-columns.cc
lily/spacing-spanner.cc
lily/span-bar-stub-engraver.cc
lily/spanner-scheme.cc
lily/spanner.cc
lily/spring-smob.cc
lily/staff-grouper-interface.cc
lily/staff-symbol-engraver.cc
lily/staff-symbol-referencer-scheme.cc
lily/staff-symbol-referencer.cc
lily/staff-symbol.cc
lily/stem-engraver.cc
lily/stem-tremolo.cc
lily/stem.cc
lily/stencil-integral.cc
lily/stencil-scheme.cc
lily/stream-event-scheme.cc
lily/stream-event.cc
lily/sustain-pedal.cc
lily/system-start-delimiter-engraver.cc
lily/system-start-delimiter.cc
lily/system.cc
lily/tab-tie-follow-engraver.cc
lily/tempo-performer.cc
lily/text-engraver.cc
lily/text-interface.cc
lily/text-spanner-engraver.cc
lily/tie-column.cc
lily/tie-engraver.cc
lily/tie-formatting-problem.cc
lily/tie-performer.cc
lily/tie.cc
lily/time-signature-engraver.cc
lily/timing-translator.cc
lily/translator-ctors.cc
lily/translator-dispatch-list.cc
lily/translator-group.cc
lily/translator-scheme.cc
lily/translator.cc
lily/trill-spanner-engraver.cc
lily/tuplet-bracket.cc
lily/tuplet-engraver.cc
lily/tuplet-iterator.cc
lily/tuplet-number.cc
lily/undead.cc
lily/unpure-pure-container.cc
lily/vaticana-ligature-engraver.cc
lily/vaticana-ligature.cc
lily/vertical-align-engraver.cc
lily/volta-bracket.cc
lily/volta-engraver.cc