
Zugriff auf OSD mit oder ohne abfrage
-
-
Ist die Prüfung nötig oder nicht?
Im Prinzip nicht, siehe dazu auch die im VDR-Core vorhandenen Skins.
Aber... Die Vergangenheit hat schon anderes bewiesen.
Grüße
kamel5
-
Hm... also kann man Prüfen oder es auch lassen. Aber wenn, dann hätte ich es doch gerne Einheitlich...
Aber... Die Vergangenheit hat schon anderes bewiesen.
Gibt es dazu ein Beispiel?
Ich tendiere dazu die Prüfungen raus zu nehmen, wenn sie nicht nötig sind
-
Grundsätzlich würde ich einen Pointer nur dann nicht prüfen, wenn du ihn vollständig durch deinen eigenen Code im Griff hast.
Wenn er von irgendwo her kommt, oder von irgendwo geändert werden kann, besser vor jedem Zugriff prüfen.
Selbst wenn es aktuell geht, weißt du nicht, was sich zukünftig im fremden Code ändern könnte. Der null-ptr Zugriff würde dann aber aus deinem Code kommen.
just my two cents
-
OK, dann werde ich die fehlenden if (Osd) wohl nachrüsten.
Hab mich halt gewundert, dass mal abgefragt wird und mal nicht
-
Gibt es dazu ein Beispiel?
Konkretes Beispiel habe ich jetzt nicht. VDR-konform bräuchtest Du es nicht, ein Augabegerät muss ein OSD zur Verfügung stellen. Aber warum sollte man sich da eine Baustelle aufmachen, die Abfrage kostet ja nicht viel.
Hab mich halt gewundert, dass mal abgefragt wird und mal nicht
Ja, das ist halt Historie, meistens ist es da nachgerüstet worden, wo es auffällig war.
Grüße
kamel5
-
cOsdProvider::NewOsd() liefert *immer* einen gültigen Pointer zurück (notfalls auf ein dummy OSD).
Wer also hiermit einen Pointer auf ein cOsd erzeugt, braucht diesen nicht auf NULL zu prüfen, solange er sicher sein kann, dass der Pointer von keinem anderen deleted und auf NULL gesetzt wird.
-
kls Vielen Dank für die Erklärung!
-
Noch mal kurz:
C++osd = cOsdProvider::NewOsd(left, top); // Is always a valid pionter if (osd) { tArea Area = {0, 0, width, height, 32}; if (osd->SetAreas(&Area, 1) == oeOk) { return; } } esyslog("flatPlus: Create osd FAILED left: %d top: %d width: %d height: %d", left, top, width, height); return;
Ist doch auch quatsch, wenn da immer ein Zeiger zurück gegeben wird. Oder sehe ich das falsch?
-
Ist doch auch quatsch, wenn da immer ein Zeiger zurück gegeben wird. Oder sehe ich das falsch?
Die Abfrage ist unnötig.
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!