ããã°ã©ãã³ã°ã¯åµé çãªæŽ»åã§ãããããéçºè
ã®äžã«ã¯ãè¶£å³ã®ããæèœã®ãã人ãããããããŸãã äžè¬çãªä¿¡å¿µã«åããŠãããã¯åžžã«ããã°ã©ãã³ã°ã§ã¯ãããŸããïŒãŸãããŸãã¯ããã ãã§ã¯ãããŸããïŒDïŒã 鳿¥œã®é²é³/ç·šéããã³å°éçãªæŽ»åã«å¯Ÿããæ
ç±ã«åºã¥ããŠã人æ°ã®ãããªãŒãã³ãœãŒã¹é³æ¥œããã°ã©ã ã®ã³ãŒãã®å質ã確èªããããšã«ããŸããã ããŒããç·šéããããã«éžæããããã°ã©ã ãæåã«ã¬ãã¥ãŒããã®ã¯MuseScoreã§ãã ãããã³ãŒã³ãè²·ãã ãããŠãã ãã...å€ãã®æ·±å»ãªãã°ããããŸãïŒ
ã¯ããã«
MuseScoreã¯ãWindowsãMac OS XãLinuxãªãã¬ãŒãã£ã³ã°ã·ã¹ãã çšã®ã³ã³ãã¥ãŒã¿ãŒããã°ã©ã ãæ¥œèãšãã£ã¿ãŒã§ãã MuseScoreã䜿çšãããšãã³ã³ãã¥ãŒã¿ãŒã®ããŒããŒããšå€éšMIDIããŒããŒãã®äž¡æ¹ãããã°ããã¡ã¢ãå
¥åã§ããŸãã MIDIãMusicXMLãLilyPond圢åŒã®ããŒã¿ã®ã€ã³ããŒããšãšã¯ã¹ããŒããããã³MusEãCapellaãBand-in-a-Box圢åŒã®ãã¡ã€ã«ã®ã€ã³ããŒãããµããŒãããŠããŸãã ããã«ãããã°ã©ã ã¯ã¹ã³ã¢ãPDFãSVGãPNGãã¡ã€ã«ããŸãã¯LilyPondããã¥ã¡ã³ãã«ãšã¯ã¹ããŒãããŠãã¹ã³ã¢ãããã«åŸ®èª¿æŽã§ããŸãã
PVS-Studioã¯ãCãC ++ãCïŒã§èšè¿°ãããããã°ã©ã ã®ãœãŒã¹ã³ãŒãã®ãšã©ãŒãæ€åºããããã®ããŒã«ã§ãã Windowsããã³Linuxã§åäœããŸãã
é
åã®ã€ã³ããã¯ã¹äœæã®åé¡
V557é
åã®ãªãŒããŒã©ã³ãå¯èœã§ãã 'cidx'ã€ã³ããã¯ã¹ã®å€ã¯4ã«éããå¯èœæ§ããããŸããstaff.cpp 1029
ClefTypeList clefTypes[MAX_STAVES]; int staffLines[MAX_STAVES]; BracketType bracket[MAX_STAVES]; int bracketSpan[MAX_STAVES]; int barlineSpan[MAX_STAVES]; bool smallStaff[MAX_STAVES]; void Staff::init(...., const StaffType* staffType, int cidx) { if (cidx > MAX_STAVES) {
ãã®ã³ãŒããã©ã°ã¡ã³ãã®äœæè
ã¯ãã€ã³ããã¯ã¹ãé
åã®æå€§ãµã€ãºãšæ¯èŒãããšãã«é倧ãªééããç¯ããŸããã ãã®ããã4ã€ã®ã¢ã¬ã€ã®å¢çãäžåºŠã«è¶
ããããšãå¯èœã«ãªããŸããã
ä¿®æ£ãããã€ã³ããã¯ã¹ãã§ãã¯æ¡ä»¶ïŒ
if (cidx >= MAX_STAVES) { setSmall(0, false); }
V557é
åã®ãªãŒããŒã©ã³ãå¯èœã§ãã ãiãã€ã³ããã¯ã¹ã®å€ã¯59ã«éããå¯èœæ§ããããŸããinspectorAmbitus.cpp 70
class NoteHead : public Symbol { .... public: enum class Group : signed char { HEAD_NORMAL = 0, HEAD_CROSS, HEAD_PLUS, .... HEAD_GROUPS,
ã«ãŒãã§ãã€ãã¹ãããé
åèŠçŽ ã®æ°ãæ°ãã代ããã«ããã®ã»ãŒ4åã®å®æ°ã䜿çšããŸããã ã«ãŒãã§ã¯ãé
åã®å¢çãè¶
ããä¿èšŒãããçµäºãçºçããŸãã
V501 ã-ãæŒç®åã®å·Šå³ã«åã坿¬¡åŒããããŸããi-i text.cpp 1429
void Text::layout1() { .... for (int i = 0; i < rows(); ++i) { TextBlock* t = &_layout[i]; t->layout(this); const QRectF* r = &t->boundingRect(); if (r->height() == 0) r = &_layout[ii].boundingRect();
ãã®å Žåãã€ã³ããã¯ã¹å€
[i-i]ã¯åžžã«ãŒãã«ãªããŸãã ããããééãããããããšãã°é
åã®åã®èŠçŽ ãåç
§ãããã£ãã®ã§ãããã
ã¡ã¢ãªãªãŒã¯

éçåæã¯ã¡ã¢ãªãªãŒã¯ãæ€åºã§ããŸãããPVS-Studioã¯ãããè¡ããŸãã ã¯ããéçã¢ãã©ã€ã¶ãŒã¯åçãªãŒã¯ãããã¡ã¢ãªãªãŒã¯ã®æ€çŽ¢ã«é¢ããŠã¯åŒ±ãã§ãããããã§ãå€ãã®è峿·±ããã®ãèŠã€ããããšãã§ããŸãã
ãªãã¿ã®ãªããããžã§ã¯ãã§ã¯ãèŠã€ãã£ããã¹ãŠã®èŠåã®ä¿¡é Œæ§ã確èªããããšã¯å°é£ã§ãããäžéšã®å Žæã§ã¯ãšã©ãŒãçºçããããšã確èªã§ããŸããã
V773 ãããŒã ããã€ã³ã¿ãŒã®å¯èŠæ§ã¹ã³ãŒãã¯ãã¡ã¢ãªãŒãè§£æŸããã«çµäºããŸããã ã¡ã¢ãªãªãŒã¯ãçºçããå¯èœæ§ããããŸãã read114.cpp 2334
Score::FileError MasterScore::read114(XmlReader& e) { .... else if (tag == "Excerpt") { if (MScore::noExcerpts) e.skipCurrentElement(); else { Excerpt* ex = new Excerpt(this); ex->read(e); _excerpts.append(ex); } } else if (tag == "Beam") { Beam* beam = new Beam(this); beam->read(e); beam->setParent(0);
å€§èŠæš¡ãªã«ã¹ã±ãŒãã®ç¶æ³ã§ã¯ãã¡ã¢ãªå²ãåœãŠãå®è¡ãããŸãã åã³ãŒããããã¯ã«ãªããžã§ã¯ããäœæããããã®ãªããžã§ã¯ããžã®ãã€ã³ã¿ãŒãä¿åãããŸãã äžèšã®ã³ãŒãã¹ããããã§ã¯ããã€ã³ã¿ãŒã®ä¿åãã³ã¡ã³ãåãããŠãããã³ãŒãã«ãšã©ãŒã远å ãããã¡ã¢ãªãªãŒã¯ãçºçããŠããŸãã
V773 ãvoicePtrããã€ã³ã¿ãŒãè§£æŸããã«é¢æ°ãçµäºããŸããã ã¡ã¢ãªãªãŒã¯ãçºçããå¯èœæ§ããããŸãã ove.cpp 3967
bool TrackParse::parse() { .... Track* oveTrack = new Track(); .... QList<Voice*> voices; for( i=0; i<8; ++i ) { Voice* voicePtr = new Voice(); if( !jump(5) ) { return false; }
ååãªå€§ããã®ãã©ã°ã¡ã³ãã§ããããšã©ãŒã®ååšã¯ç°¡åã«ç¢ºèªã§ããŸãã ããŒã¯ãããå
returnã¹ããŒãã¡ã³ãã¯ã
voicePtrãã€ã³ã¿ãŒã
倱ããŸãã ããã§ããããã°ã©ã ããSAVE 2ããšããã³ã¡ã³ãã®ããã³ãŒãè¡ãŸã§å®è¡ãããå Žåããã€ã³ã¿ãŒã¯
Trackã¯ã©ã¹ã«æ ŒçŽãããŸãã ãã®ã¯ã©ã¹ã®ãã¹ãã©ã¯ã¿ã§ã¯ããã€ã³ã¿ãè§£æŸãããŸãã ãŸããã¡ã¢ãªãªãŒã¯ãçºçããå ŽåããããŸãã
Trackã¯ã©ã¹ã®å®è£
ã¯æ¬¡ã®ããã«ãªããŸãã
class Track{ .... QList<Voice*> voices_; .... } void Track::addVoice(Voice* voice) { voices_.push_back(voice); } Track::~Track() { clear(); } void Track::clear(void) { .... for(int i=0; i<voices_.size(); ++i){ delete voices_[i]; } voices_.clear(); }
ä»ã®åæ§ã®ã¢ãã©ã€ã¶ãŒèŠåã¯ããããžã§ã¯ãéçºè
ãæãããèŠãŸãã
åæåãšã©ãŒ
V614åæåãããŠããªã倿°ãpageWidthãã䜿çšãããŸããã ãdoCreditsã颿°ã®3çªç®ã®å®åŒæ°ã確èªããããšãæ€èšããŠãã ããã importmxmlpass1.cpp 944
void MusicXMLParserPass1::scorePartwise() { .... int pageWidth; int pageHeight; while (_e.readNextStartElement()) { if (_e.name() == "part") part(); else if (_e.name() == "part-list") { doCredits(_score, credits, pageWidth, pageHeight);
ãã®ãããªã³ãŒãã«ããã
doCreditsïŒïŒé¢æ°ã§åæåãããŠããªã倿°
pageWidthããã³
pageHeightã䜿çšã§ããŸãã
static void doCredits(Score* score,const CreditWordsList& credits, const int pageWidth, const int pageHeight) { .... const int pw1 = pageWidth / 3; const int pw2 = pageWidth * 2 / 3; const int ph2 = pageHeight / 2; .... }
åæåãããŠããªã倿°ã䜿çšãããšãæªå®çŸ©ã®åäœãçºçããé·æéã«ããã£ãŠããã°ã©ã ã®æ£ããåäœã®å€èгãäœæãããå¯èœæ§ããããŸãã
V730ã¯ã©ã¹ã®ãã¹ãŠã®ã¡ã³ããŒãã³ã³ã¹ãã©ã¯ã¿ãŒå
ã§åæåãããããã§ã¯ãããŸããã æ€æ»ãæ€èšããŠãã ããïŒ_dclickValue1ã_dclickValue2ã aslider.cpp 30
AbstractSlider::AbstractSlider(QWidget* parent) : QWidget(parent), _scaleColor(Qt::darkGray), _scaleValueColor(QColor("#2456aa")) { _id = 0; _value = 0.5; _minValue = 0.0; _maxValue = 1.0; _lineStep = 0.1; _pageStep = 0.2; _center = false; _invert = false; _scaleWidth = 4; _log = false; _useActualValue = false; setFocusPolicy(Qt::StrongFocus); } double lineStep() const { return _lineStep; } void setLineStep(double v) { _lineStep = v; } double pageStep() const { return _pageStep; } void setPageStep(double f) { _pageStep = f; } double dclickValue1() const { return _dclickValue1; } double dclickValue2() const { return _dclickValue2; } void setDclickValue1(double val) { _dclickValue1 = val; } void setDclickValue2(double val) { _dclickValue2 = val; } ....
åæåãããŠããªãã¯ã©ã¹ãã£ãŒã«ãã䜿çšãããšãæªå®çŸ©ã®åäœãçºçããå¯èœæ§ããããŸãã ãã®ã¯ã©ã¹ã§ã¯ãã»ãšãã©ã®ãã£ãŒã«ãã¯ã³ã³ã¹ãã©ã¯ã¿ãŒã§åæåããããããã«ã¢ã¯ã»ã¹ããããã®ã¡ãœããããããŸãã ãã ãã倿°
_dclickValue1ãš_ dclickValue2ã¯ãèªã¿åããšæžã蟌ã¿ã®ã¡ãœãããæã£ãŠããŸãããåæåãããŠããŸããã readã¡ãœãããæåã«åŒã³åºãããå Žåãæªå®çŸ©ã®å€ãè¿ããŸãã çŽ100ã®ãã®ãããªå Žæããããžã§ã¯ãã³ãŒãã§èŠã€ãã£ããããéçºè
ã調æ»ããã«å€ããŸãã
ç¶æ¿ãšã©ãŒ
V762ä»®æ³æ©èœã誀ã£ãŠãªãŒããŒã©ã€ããããå¯èœæ§ããããŸãã æŽŸçã¯ã©ã¹ãPianorollEditorãããã³åºæ¬ã¯ã©ã¹ãMuseScoreViewãã®é¢æ°ãadjustCanvasPositionãã®3çªç®ã®åŒæ°ãåç
§ããŠãã ããã pianoroll.h 92
class MuseScoreView { .... virtual void adjustCanvasPosition(const Element*, bool , int = 0) {}; .... } class PianorollEditor : public QMainWindow, public MuseScoreView{ .... virtual void adjustCanvasPosition(const Element*, bool); .... } class ScoreView : public QWidget, public MuseScoreView { .... virtual void adjustCanvasPosition(const Element* el, bool playBack, int staff = -1) override; .... } class ExampleView : public QFrame, public MuseScoreView { .... virtual void adjustCanvasPosition(const Element* el, bool playBack); .... }
ã¢ãã©ã€ã¶ãŒã¯ã
MuseScoreViewåºæ¬ã¯ã©ã¹ã®
adjustCanvasPositionïŒïŒé¢æ°ããªãŒããŒã©ã€ãããã³ãªãŒããŒããŒããã3ã€ã®ç°ãªãæ¹æ³ãèŠã€ããŸããã ã³ãŒããå確èªããå¿
èŠããããŸãã
å°éäžèœã³ãŒã
V517 ãifïŒAïŒ{...} else ifïŒAïŒ{...}ããã¿ãŒã³ã®äœ¿çšãæ€åºãããŸããã è«çãšã©ãŒãååšããå¯èœæ§ããããŸãã è¡ã確èªããŠãã ããïŒ1740ã1811ãscoreview.cpp 1740
static void readNote(Note* note, XmlReader& e) { .... while (e.readNextStartElement()) { const QStringRef& tag(e.name()); if (tag == "Accidental") { .... } .... else if (tag == "offTimeType") {
éåžžã«å€§èŠæš¡ãªæ¡ä»¶ã®ã«ã¹ã±ãŒãã§ã¯ã2ã€ã®åäžã®ãã§ãã¯ããããŸãã ãã®ãããªãšã©ãŒã§ã¯ãäž¡æ¹ã®æ¡ä»¶ãæºããããŠããªãããæåã®æ¡ä»¶ã®ã¿ãæºããããŠããŸãã ãããã£ãŠã2çªç®ã®æ¡ä»¶ãæºããããããšã¯ãªããã³ãŒãã¯å°éäžèœã®ãŸãŸã§ãã
ã³ãŒãå
ã®2ã€ã®é¡äŒŒããå ŽæïŒ
- V517ãifïŒAïŒ{...} else ifïŒAïŒ{...}ããã¿ãŒã³ã®äœ¿çšãæ€åºãããŸããã è«çãšã©ãŒãååšããå¯èœæ§ããããŸãã è¡ã確èªããŠãã ããïŒ645ã726ãread114.cpp 645
- V517ãifïŒAïŒ{...} else ifïŒAïŒ{...}ããã¿ãŒã³ã®äœ¿çšãæ€åºãããŸããã è«çãšã©ãŒãååšããå¯èœæ§ããããŸãã è¡ã確èªããŠãã ããïŒ1740ã1811ãscoreview.cpp 1740
次ã®ãšã©ãŒãèæ
®ããŠãã ããã
V547åŒ 'middleMeasureïŒ= 0'ã¯åžžã«falseã§ãã ove.cpp 7852
bool getMiddleUnit(...., Measure* middleMeasure, int& middleUnit) { .... } void OveOrganizer::organizeWedge(....) { .... Measure* middleMeasure = NULL; int middleUnit = 0; getMiddleUnit( ove_, part, track, measure, ove_->getMeasure(bar2Index), wedge->start()->getOffset(), wedge->stop()->getOffset(), middleMeasure, middleUnit); if( middleMeasure != 0 ) {
å®è¡ãããªãå¥ã®éåžžã«å€§ããªã³ãŒãã çç±ã¯åžžã«åœã§ããæ¡ä»¶ã§ãã æ¡ä»¶ã§ã¯ãæåã«ãŒãã«åæåããããã€ã³ã¿ãŒããŒããšæ¯èŒãããŸãã ããèŠã
ãšã¿ã€ããã¹
ãæããã«ãªã£ãŠããŸãã倿°
middleMeasureãš
middleUnitã¯æ··åãããŠããŸãã
getMiddleUnitïŒïŒé¢æ°ã«æ³šæããŠ
ãã ãã ã ååãšæåŸã®åŒæ°ïŒåç
§ã«ããæž¡ãããïŒã¯ã倿°
middleUnitã倿ŽãããŠããããšã瀺ããŠããŸããããã¯ãæ¡ä»¶ã§ãã§ãã¯ãããã¹ãã§ããã
V547åŒ 'error == 2'ã¯åžžã«falseã§ãã mididriver.cpp 126
#define ENOENT 2 bool AlsaMidiDriver::init() { int error = snd_seq_open(&alsaSeq, "hw", ....); if (error < 0) { if (error == ENOENT) qDebug("open ALSA sequencer failed: %s", snd_strerror(error)); return false; } .... }
æããã«ãæåã®ãã§ãã¯ã®åŸã
ãšã©ãŒå€æ°ã¯åžžã«ãŒãæªæºã«ãªããŸãã 倿°ãšæ°å€
2ãããã«æ¯èŒãããã
ããããã°æ
å ±ã¯è¡šç€ºãããŸããã
V560æ¡ä»¶åŒã®äžéšã¯åžžã«falseã§ãïŒstrack>-1. edit.cpp 3669
void Score::undoAddElement(Element* element) { QList<Staff* > staffList; Staff* ostaff = element->staff(); int strack = -1; if (ostaff) { if (ostaff->score()->excerpt() && strack > -1) strack = ostaff->score()->excerpt()->tracks().key(...); else strack = ostaff->idx() * VOICES + element->track() % VOICES; } .... }
æ¡ä»¶åŒã«ãšã©ãŒãããå¥ã®ã±ãŒã¹ã
ä»ã®ã³ãŒã
ã¯åžžã«å®è¡ãããŸãã
V779å°éäžèœã³ãŒããæ€åºãããŸããã ãšã©ãŒãååšããå¯èœæ§ããããŸãã figuredbass.cpp 1377
bool FiguredBass::setProperty(P_ID propertyId, const QVariant& v) { score()->addRefresh(canvasBoundingRect()); switch(propertyId) { default: return Text::setProperty(propertyId, v); } score()->setLayoutAll(); return true; }
V779蚺æã¯ãå°éäžèœãªã³ãŒããèŠã€ããããšã«ç¹åããŠããããã®å©ããåããŠãã®ãããªé¢çœãå ŽæããããŸããã ãŸããã³ãŒãã«ã¯1ã€ã§ã¯ãªããããã«2ã€ãããŸãã
- V779å°éäžèœã³ãŒããæ€åºãããŸããã ãšã©ãŒãååšããå¯èœæ§ããããŸãã fingering.cpp 165
- V779å°éäžèœã³ãŒããæ€åºãããŸããã ãšã©ãŒãååšããå¯èœæ§ããããŸãã chordrest.cpp 1127
ç¡å¹ãªãã€ã³ã¿ãŒ/ã€ãã¬ãŒã¿ãŒ
V522 nullãã€ã³ã¿ãŒãcustomDrumsetãã®
éåç
§ãè¡ãããå ŽåããããŸãã instrument.cpp 328
bool Instrument::readProperties(XmlReader& e, Part* part, bool* customDrumset) { .... else if (tag == "Drum") {
ç¶æ
ã«èª€ãããããŸãã ãããããäœæè
ã¯ãåç
§è§£é€ããåã«
customDrumsetãã€ã³ã¿ãŒã
ç°ãªãæ¹æ³ã§ãã§ãã¯ãããã£ãã®ã§ãããã¿ã€ããã¹ãç¯ããŠããŸããã
V522ãã«ãã€ã³ã¿ãŒãã»ã°ã¡ã³ããã®
éåç
§ãè¡ãããå ŽåããããŸãã measure.cpp 2220
void Measure::read(XmlReader& e, int staffIdx) { Segment* segment = 0; .... while (e.readNextStartElement()) { const QStringRef& tag(e.name()); if (tag == "move") e.initTick(e.readFraction().ticks() + tick()); .... else if (tag == "sysInitBarLineType") { const QString& val(e.readElementText()); BarLine* barLine = new BarLine(score()); barLine->setTrack(e.track()); barLine->setBarLineType(val); segment = getSegmentR(SegmentType::BeginBarLine, 0);
ããã¯ããã®ãããžã§ã¯ãã§ãã¹ãçºçããæåã®å€§ããªã«ã¹ã±ãŒãã§ã¯ãããŸããã æ€èšãã䟡å€ããããŸãïŒ ããã§ã
ã»ã°ã¡ã³ããã€ã³ã¿ãŒã¯æåã¯ãŒãã§ã䜿çšåã«ããŸããŸãªæ¡ä»¶äžã§åæåãããŸãã ãããã©ã³ãã§ã¯ã圌ãã¯ãããããã®ãå¿ããŠããŸããã
ããã«2ã€ã®å±éºãªå ŽæïŒ
- V522ãã«ãã€ã³ã¿ãŒãã»ã°ã¡ã³ããã®éåç
§ãè¡ãããå ŽåããããŸãã read114.cpp 1551
- V522ãã«ãã€ã³ã¿ãŒãã»ã°ã¡ã³ããã®éåç
§ãè¡ãããå ŽåããããŸãã read206.cpp 1879
V774ã¡ã¢ãªãŒãè§£æŸãããåŸããã¹ã©ãŒããã€ã³ã¿ãŒã䜿çšãããŸããã importgtp-gp6.cpp 2072
void GuitarPro6::readGpif(QByteArray* data) { if (c) { slur->setTick2(c->tick()); score->addElement(slur); legatos[slur->track()] = 0; } else { delete slur; legatos[slur->track()] = 0; } }
ã¹ã©ãŒãã€ã³ã¿ãŒ
㯠ã
å逿Œç®åã䜿çšããŠã¡ã¢ãªãè§£æŸããåŸã«äœ¿çšãããŸãã ãããããããã§ç·ãæ··åãããã§ãããã
ç¯å²ããŒã¹ã®forã«ãŒãã§äœ¿çšããããoldListãã³ã³ããã®
V789ã€ãã¬ãŒã¿ã¯ããæ¶å»ã颿°ã®åŒã³åºãæã«ç¡å¹ã«ãªããŸãã layout.cpp 1760
void Score::createMMRest(....) { ElementList oldList = mmr->takeElements(); for (Element* ee : oldList) {
ã¢ãã©ã€ã¶ãŒã¯ãç¯å²ããŒã¹ã®forã«ãŒãã§
oldListã³ã³ãããŒã®åæèªã¿åããšå€æŽãæ€åºããŸããã ãã®ãããªã³ãŒãã¯èª€ãã§ãã
ç®è¡ãšã©ãŒ
V765è€å代å
¥åŒãx + = x + ...ãã¯çãããã§ãã ãšã©ãŒã®å¯èœæ§ã調ã¹ãããšãæ€èšããŠãã ããã tremolo.cpp 321
void Tremolo::layout() { .... if (_chord1->up() != _chord2->up()) { beamYOffset += beamYOffset + beamHalfLineWidth;
ããã¯ãã¢ãã©ã€ã¶ãŒãæ€åºããã³ãŒãã§ãã æå®ãããåŒã¯ãããšåçã§ãïŒ
beamYOffset = beamYOffset + beamYOffset + beamHalfLineWidth;
beamYOffset倿°
ã 2å远å ãããŸãã ããããããã¯ééãã§ãã
V674 ãdoubleãã¿ã€ãã®ã-2.5ããªãã©ã«ã¯ããintãã¿ã€ãã®å€ãšæ¯èŒãããŸãã ãalter <-2.5ãåŒã®æ€æ»ãæ€èšããŠãã ããã importmxmlpass2.cpp 5253
void MusicXMLParserPass2::pitch(int& step, int& alter ....) { .... alter = MxmlSupport::stringToInt(strAlter, &ok); if (!ok || alter < -2.5 || alter > 2.5) { logError(QString("invalid alter '%1'").arg(strAlter)); .... alter = 0; } .... }
alter倿°ã®æŽæ°åã¯
intã§ãã ãããŠãæ°å
2.5ãš
-2.5ãšã®æ¯èŒã¯éåžžã«å¥åŠã«èŠããŸãã
V595 nullptrã«å¯ŸããŠæ€èšŒãããåã«ãããµã³ãã«ããã€ã³ã¿ãŒã䜿çšãããŸããã è¡ã確èªïŒ926ã929ãvoice.cpp 926
void Voice::update_param(int _gen) { .... if (gen[GEN_OVERRIDEROOTKEY].val > -1) { root_pitch = gen[GEN_OVERRIDEROOTKEY].val * 100.0f - .... } else { root_pitch = sample->origpitch * 100.0f - sample->pitchadj; } root_pitch = _fluid->ct2hz(root_pitch); if (sample != 0) root_pitch *= (float) _fluid->sample_rate / sample->samplerate; break; .... }
ã¢ãã©ã€ã¶ãŒã¯ãã³ãŒãã®äžã«ãã§ãã¯ãååšããå Žåãæªæ€èšŒã®
ãµã³ãã«ãã€ã³ã¿ãŒã®éåç
§ãèªããŸãã ãããã
ãµã³ãã«ãã€ã³ã¿ãŒããã®é¢æ°ã§ãã§ãã¯ããäºå®ããªãã倿°
sample-> samplerateãé€ç®åã®ãŒããšæ¯èŒãããå Žåã¯ã©ãã§ããããã æ¬¡ã«ãé倧ãªééãããããŸãã
éå€
V523 ãthenãã¹ããŒãã¡ã³ãã¯ãelseãã¹ããŒãã¡ã³ããšåçã§ãã pluginCreator.cpp 84
PluginCreator::PluginCreator(QWidget* parent) : QMainWindow(parent) { .... if (qApp->layoutDirection() == Qt::LayoutDirection::....) { editTools->addAction(actionUndo); editTools->addAction(actionRedo); } else { editTools->addAction(actionUndo); editTools->addAction(actionRedo); } .... }
ã¢ãã©ã€ã¶ãŒã¯ãç°ãªãæ¡ä»¶äžã§åãã³ãŒãã®å®è¡ãæ€åºããŸããã ããã§ããšã©ãŒãä¿®æ£ããããæ¡ä»¶ãåé€ããŠã³ãŒããååã«ã«ããããå¿
èŠããããŸãã
V524 ãdownLineã颿°ã®æ¬äœããupLineã颿°ã®æ¬äœãšå®å
šã«åçã§ããããšã¯å¥åŠã§ãã rest.cpp 667
int Rest::upLine() const { qreal _spatium = spatium(); return lrint((pos().y() + bbox().top() + _spatium) * 2 / _spatium); } int Rest::downLine() const { qreal _spatium = spatium(); return lrint((pos().y() + bbox().top() + _spatium) * 2 / _spatium); }
upLineïŒïŒããã³
downLineïŒïŒé¢æ°ã®ååã¯æå³ãéã§ãããåãããã«å®è£
ãããŸãã ãã®äžå¯©ãªå Žæããã§ãã¯ãã䟡å€ããããŸãã
V766åãããŒã "mrcs"ããæã€ã¢ã€ãã ããã§ã«è¿œå ãããŠããŸãã importgtp-gp6.cpp 100
const static std::map<QString, QString> instrumentMapping = { .... {"e-piano-gs", "electric-piano"}, {"e-piano-ss", "electric-piano"}, {"hrpch-gs", "harpsichord"}, {"hrpch-ss", "harpsichord"}, {"mrcs", "maracas"},
ãã®ã³ãŒããã©ã°ã¡ã³ãã®äœæè
ã¯æ¥ãã§ããŠãåãããŒã§ç°ãªãå€ãæã€ãã¢ãäœæããããã§ãã
V1001 ãontimeã倿°ãå²ãåœãŠãããŠããŸããã颿°ã®æåŸãŸã§äœ¿çšãããŸããã rendermidi.cpp 1176
bool renderNoteArticulation(....) { int ontime = 0; ....
ontime倿°ã¯ã³ãŒãå
ã§å€æŽãããŸããã颿°ã®çµäºæã«ã¯äœ¿çšãããŸããã ããããééãããããŸãã
V547åŒ 'runState == 0'ã¯åžžã«falseã§ãã pulseaudio.cpp 206
class PulseAudio : public Driver { Transport state; int runState;
ã¢ãã©ã€ã¶ãŒã¯åžžã«åœã®ç¶æ
ãæ€åºããŸãããã
stopïŒïŒé¢æ°ã¯äžŠåã³ãŒãã§åŒã³åºãããããªã¬ãŒãããã¹ãã§ã¯ãããŸããã èŠåã®çç±ã¯ãã³ãŒãã®äœæè
ãåæã®ããã«ã¯ã©ã¹ãã£ãŒã«ãã§ããåçŽãª
int倿°ã䜿çšããããã§ãã ãããŠãããã¯åæãšã©ãŒã«ã€ãªãããŸãã ã³ãŒããä¿®æ£ããåŸã
V547蚺æ
ã¯èª€æ€ç¥ã忢ããŸãã 䞊åã³ãŒãã®ãããã¯ã§äŸå€ãã¹ããŒããŸãã
ãããã«
å°ããªãããžã§ã¯ãã«ã¯ããŸããŸãªãšã©ãŒããããŸããã ããã°ã©ã ã®äœè
ãç§ã®ã¬ãã¥ãŒã«æ³šæãæããä¿®æ£äœæ¥ãè¡ãããšãé¡ã£ãŠããŸãã 䜿çšããä»ã®ããã€ãã®ããã°ã©ã ã®ã³ãŒãã確èªããŸãã 鳿¥œãæ±ãããã®è峿·±ããœãããŠã§ã¢ãç¥ã£ãŠããŠãã¬ãã¥ãŒã§èŠããå Žåã¯ãååã
ã¡ãŒã«ã§ç§ã«éã£ãŠãã ããã
ãã®ä»ã®ã¬ãã¥ãŒïŒ
ãããžã§ã¯ãã§PVS-Studioã¢ãã©ã€ã¶ãŒã詊ãã®ã¯éåžžã«ç°¡åã§ãã
ããŠã³ããŒãããŒãžã«é²ãã§ãã ããã
è±èªã話ãèŽè¡ãšãã®èšäºãå
±æãããå Žåã¯ã翻蚳ãžã®ãªã³ã¯ã䜿çšããŠãã ããïŒSvyatoslav Razmyslovã
鳿¥œãœãããŠã§ã¢ã®ã³ãŒãã®æ¬ é¥ã®ã¬ãã¥ãŒããŒã1. MuseScore