Clarify undefined behavior when target == source in PMatrix::mult docs
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 1/5
- Geschätzter Aufwand
- Unter einer Stunde
- Anfängerfreundlichkeit
- 85/100
- Issue-Typ
- Dokumentation
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- java
- Bereich
- documentation
Rechercherichtung
Lies den Javadoc zu PMatrix.mult in core/src/processing/core/PMatrix.java, etwa in den Zeilen 165–171. Stelle klar, was passiert, wenn target und source dasselbe Objekt sind, und korrigiere die Formulierung, die den Rückgabewert als Matrix bezeichnet. Fertig ist die Änderung, wenn die Dokumentation das Verhalten korrekt beschreibt und den Rückgabewert als PVector bezeichnet.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Hi folks!
I know this won't be top priority, but this issue caused me to spin my wheels for a couple days straight since it was one of those times where all my logic "looked right" after many passes so I figured it might throw some other beginners for a loop.
I'd like to request additional clarity be added to the javadoc here:
Specifically, I think that it should be stated explicitly that behavior is undefined when target == source. Since no warning was offered I did not expect for the contents of source to still be in the process of being read by the time that target is actually being populated within this method but it appears something like that is happening (my expectation was that the contents of source would have probably been extracted into local variables once at the beginning since there are so few elements in a PVector and then loaded into target once at the end after performing intermediate computations). Ideally, if there is no utility in allowing target == source whatsoever, this case should throw an exception but, alternatively, additional doc clarity would have been a noninvasive way of preventing prolonged confusion in my case. Also I think "target will then be the matrix returned" is a typo since this method is returning a PVector.
Here is an example sketch you can use to observe the undocumented undefined behavior. Move the mouse around without pressing anything to observe normal behavior when simply passing target = null. Similarly, pressing Right-click will set target equal to a PVector reference which is fixed across draw() frames--the outcome of which is normal behavior. Pressing Left-click will pass target = source triggering the undefined behavior.
Thanks!
- Vorherrschende Sprache
- Java
- Sterne
- 527
- Forks
- 190
- Ø Merge
- 1 T. 4 Std.
- Gemergte PRs (30 T.)
- 3
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus processing/processing4
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
processing/processing4#1592 ·
-
`Processing lsp` never exits and leaves orphaned processesEvtl. vergeben @overcast302 hat das vor 25 Tagen übernommen. Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
processing/processing4#1578 · 2 Kommentare · 1 Reaktion · 1 zugewiesene Person ·
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
processing/processing4#1554 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
processing/processing4#1515 · 1 Reaktion ·
-
bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
processing/processing4#1590 · 1 Kommentar ·
Alle Issues in processing/processing4
Ähnliche Issues
-
needs-area-label
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
Maintainer antworten meist innerhalb von 2 Tagen
-
enhancement Java macOS
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
freerouting/freerouting#1079 ·
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
apache/maven-enforcer#1074 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Gradle liquibaseDiffChangelog drops jhi_date_time_wrapperEvtl. vergeben @mraible hat das heute übernommen. Offenarea: triage theme: undefined
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
jhipster/generator-jhipster#35998 ·
Maintainer antworten meist innerhalb von 1 Tag