Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Missing virtual destructor for `Print` class

Offen
#256 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

@andreagilardoni arbeitet bereits daran.

Seit 27.9.2023.

  • #218 von @andreagilardoni — offen

Bewertung

Schwierigkeit
1/5
Geschätzter Aufwand
Unter einer Stunde
Anfängerfreundlichkeit
30/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Veraltet
Tech-Stack
cpp
Bereich
api, embedded-iot

Rechercherichtung

Lies die referenzierte Deklaration in api/Print.h und prüfe den verknüpften Pull Request #218, um die vorgeschlagene Änderung zu verstehen. Erledigt ist die Aufgabe, wenn das Beispiel Modem.cpp nicht mehr die Warnung zu einem nicht-virtuellen Destruktor oder die damit verbundene Bedenken bezüglich undefinierten Verhaltens erzeugt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug
Description

Missing virtual destructor - memory leak and UB

Environment

First found on R4, but it is general

Current behavior

Warning while compiling sketch, possible UB.

packages/arduino/hardware/renesas_uno/1.5.0/libraries/WiFiS3/src/Modem.cpp: In destructor 'ModemClass::~ModemClass()':
packages/arduino/hardware/renesas_uno/1.5.0/libraries/WiFiS3/src/Modem.cpp:27:14: warning: deleting object of polymorphic
 class type 'UART' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor]
       delete _serial;

ModemClass extends Serial which extends Print.

Expected behavior

no warnings

Additional information

This class is very base class of all streams and other i/o components.

https://github.com/arduino/ArduinoCore-API/blob/4a02bfc0a924e1fec34c3bb82ffd5dfba7643a0c/api/Print.h#L35

Vorherrschende Sprache
C++
Sterne
306
Forks
150
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Die Einrichtungsdateien dieses Projekts haben wir noch nicht geprüft. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus arduino/ArduinoCore-API

Alle Issues in arduino/ArduinoCore-API

Ähnliche Issues

Weitere Issues zu C++

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.