Reviewers: lemzwerg, Message: On 2020/02/04 10:45:58, lemzwerg wrote: > lily/accidental-placement.cc:62: scm_from_long (stagger ? context_hash : 1)); > Are you actually trying clang-format? There's one space too much :-)
I was too lazy to deal with Han-Wen's config file as a patch. Now that it's in master, I plan to try it. Description: https://sourceforge.net/p/testlilyissues/issues/5733/ 1: int->size_t in make_script_from_event () ... and similarly in Fingering_engraver::make_script (). 2: Fix scm_from_... () with wrong types 3: Fix type-conversion warning in Scale Assert that scale size is less than the max int value. 4: int->vsize in Dot_column Please review this at https://codereview.appspot.com/559450053/ Affected files (+23, -26 lines): M lily/accidental-placement.cc M lily/dot-column.cc M lily/fingering-engraver.cc M lily/grob-array-scheme.cc M lily/include/script-interface.hh M lily/scale.cc M lily/script-engraver.cc M lily/tab-note-heads-engraver.cc Index: lily/accidental-placement.cc diff --git a/lily/accidental-placement.cc b/lily/accidental-placement.cc index 0ac9fe98bcfcab465d19d1ff80b172827842423f..43b6971b9eb90b41189ee25c77b1ce8b8fbb514f 100644 --- a/lily/accidental-placement.cc +++ b/lily/accidental-placement.cc @@ -56,10 +56,10 @@ Accidental_placement::add_accidental (Grob *me, Grob *a, bool stagger, long cont return; a->set_parent (me, X_AXIS); - long n = p->get_notename (); SCM accs = me->get_object ("accidental-grobs"); - SCM key = scm_cons (scm_from_int (n), scm_from_long (stagger ? context_hash : 1)); + SCM key = scm_cons (scm_from_int (p->get_notename ()), + scm_from_long (stagger ? context_hash : 1)); // assoc because we're dealing with pairs SCM entry = scm_assoc (key, accs); if (scm_is_false (entry)) Index: lily/dot-column.cc diff --git a/lily/dot-column.cc b/lily/dot-column.cc index 744062c0edac9abc0a40d76ccae34b4d5628a5bb..66c9c91c2830ded090224fe1a22402be6b541d36 100644 --- a/lily/dot-column.cc +++ b/lily/dot-column.cc @@ -170,11 +170,11 @@ Dot_column::calc_positioning_done (SCM smob) for (vsize j = 0; j < parent_stems.size (); j++) { Interval chord = Stem::head_positions (parent_stems[j]); - int total_room = ((int) chord.length () + 2 - + scm_to_int (chord_dots_limit)) / 2; - int total_dots = dots_each_stem[j].size (); + vsize total_room = (static_cast<size_t> (chord.length ()) + 2 + + scm_to_size_t (chord_dots_limit)) / 2; + vsize total_dots = dots_each_stem[j].size (); // remove excessive dots from the ends of the stem - for (int first_dot = 0; total_dots > total_room; total_dots--) + for (vsize first_dot = 0; total_dots > total_room; total_dots--) if (0 == (total_dots - total_room) % 2) dots_each_stem[j][first_dot++]->suicide (); else Index: lily/fingering-engraver.cc diff --git a/lily/fingering-engraver.cc b/lily/fingering-engraver.cc index d6a49f2dff55f261d028e849a9ef686f59b0516b..f7b9e68d29e7bf03af74fefb34b1ea08081d2fc4 100644 --- a/lily/fingering-engraver.cc +++ b/lily/fingering-engraver.cc @@ -46,7 +46,7 @@ protected: void acknowledge_note_column (Grob_info); private: - void make_script (Direction, Stream_event *, int); + void make_script (Direction, Stream_event *, size_t); }; void @@ -100,7 +100,7 @@ Fingering_engraver::process_music () } void -Fingering_engraver::make_script (Direction d, Stream_event *r, int i) +Fingering_engraver::make_script (Direction d, Stream_event *r, size_t i) { Item *fingering = make_item ("Fingering", r->self_scm ()); @@ -111,16 +111,12 @@ Fingering_engraver::make_script (Direction d, Stream_event *r, int i) Side_position_interface::set_axis (fingering, Y_AXIS); Self_alignment_interface::set_aligned_on_parent (fingering, X_AXIS); - // Hmm - int priority = 200; - SCM s = fingering->get_property ("script-priority"); - if (scm_is_number (s)) - priority = scm_to_int (s); - /* See script-engraver.cc */ - priority += i; - - fingering->set_property ("script-priority", scm_from_int (priority)); + SCM priority = fingering->get_property ("script-priority"); + if (!scm_is_number (priority)) + priority = scm_from_int (200); // TODO: Explain magic. + priority = scm_sum (priority, scm_from_size_t (i)); + fingering->set_property ("script-priority", priority); if (d) fingering->set_property ("direction", scm_from_int (d)); Index: lily/grob-array-scheme.cc diff --git a/lily/grob-array-scheme.cc b/lily/grob-array-scheme.cc index 23b6a14174af1f61af143a8528f11b999655aecd..3d9148d97c19e18cfb8b91d714a9a21a33815cc6 100644 --- a/lily/grob-array-scheme.cc +++ b/lily/grob-array-scheme.cc @@ -29,7 +29,7 @@ LY_DEFINE (ly_grob_array_length, "ly:grob-array-length", LY_ASSERT_SMOB (Grob_array, grob_arr, 1); Grob_array *me = unsmob<Grob_array> (grob_arr); - return scm_from_int (me->size ()); + return scm_from_size_t (me->size ()); } LY_DEFINE (ly_grob_array_ref, "ly:grob-array-ref", Index: lily/include/script-interface.hh diff --git a/lily/include/script-interface.hh b/lily/include/script-interface.hh index 346b8da5282235ccb2d796d2cf8e880517c91324..85bf3e89025501bcde856616c3ee4fe4547dbc15 100644 --- a/lily/include/script-interface.hh +++ b/lily/include/script-interface.hh @@ -41,7 +41,7 @@ public: }; void make_script_from_event (Grob *p, Context *tg, - SCM type, int index); + SCM type, size_t index); #endif /* SCRIPT_INTERFACE_HH */ Index: lily/scale.cc diff --git a/lily/scale.cc b/lily/scale.cc index 6f61854847206a09e0e28200083c33c8a11ddec5..fd82a7b3ce23459ba684e54313cafd0a6c23875e 100644 --- a/lily/scale.cc +++ b/lily/scale.cc @@ -22,6 +22,8 @@ #include "scale.hh" #include "protected-scm.hh" +#include <limits> + using std::vector; /* @@ -94,7 +96,7 @@ LY_DEFINE (ly_set_default_scale, "ly:set-default-scale", int Scale::step_count () const { - return step_tones_.size (); + return static_cast<int> (step_tones_.size ()); } Rational @@ -136,6 +138,7 @@ Scale::normalize_step (int step) const Scale::Scale (vector<Rational> const &tones) { + assert (tones.size () <= std::numeric_limits<int>::max ()); step_tones_ = tones; smobify_self (); Index: lily/script-engraver.cc diff --git a/lily/script-engraver.cc b/lily/script-engraver.cc index 30faba863b430d1e7930459d3d88a6613a47031f..953f74983f5c6536e6f4e62f29492a6b2e7b6dc3 100644 --- a/lily/script-engraver.cc +++ b/lily/script-engraver.cc @@ -106,7 +106,7 @@ copy_property (Grob *g, SCM sym, SCM alist) */ void make_script_from_event (Grob *p, Context *tg, - SCM art_type, int index) + SCM art_type, size_t index) { SCM alist = tg->get_property ("scriptDefinitions"); SCM art = scm_assoc (art_type, alist); @@ -140,9 +140,7 @@ make_script_from_event (Grob *p, Context *tg, /* Make sure they're in order of user input by adding index i. Don't use the direction in this priority. Smaller means closer to the head. */ - int prio = scm_to_int (val) + index; - - val = scm_from_int (prio); + val = scm_sum (val, scm_from_size_t (index)); } SCM preset = p->get_property_data (sym); @@ -154,7 +152,7 @@ make_script_from_event (Grob *p, Context *tg, if (!priority_found) { p->set_property ("script-priority", - scm_from_int (index)); + scm_from_size_t (index)); } } Index: lily/tab-note-heads-engraver.cc diff --git a/lily/tab-note-heads-engraver.cc b/lily/tab-note-heads-engraver.cc index 1ab941620574ca03c70522916a78d55fcd917303..89a33ac57cacebbab974a4d594a937cda4c1174d 100644 --- a/lily/tab-note-heads-engraver.cc +++ b/lily/tab-note-heads-engraver.cc @@ -113,7 +113,7 @@ Tab_note_heads_engraver::process_music () if (!scm_is_null (string_fret_finger)) for (vsize i = 0; i < fret_count; i++) { - note_entry = scm_list_ref (string_fret_finger, scm_from_int (i)); + note_entry = scm_list_ref (string_fret_finger, scm_from_size_t (i)); string_number = scm_car (note_entry); if (scm_is_true (string_number)) {