Magerquark.de

AllocSysString

Hartnäckigkeit zahlt sich oft aus: Heute habe ich ein Speicherleck (englisch „Memory leak“) in Zeta Producer korrigiert, das seit Version 5 drin war:

Beim Aufruf der Microsoft Scripting Engine habe ich beim Aufruf der Funktion IActiveScriptParse::ParseScriptText irrtümlicherweise CStringT::AllocSysString aufgerufen und den so angeforderten Speicher selbst nicht mehr freigegeben. Dies hätte ich jedoch machen müssen, was ich in der korrigierten Version nun mache.

Das hätte ich aber machen sollen! „RTFM“ hat Mario mir da gleich geantwortet als ich es ihm erzählt habe.

Hiermit also nochmals der ultimative Artikel wann wer für die Freigabe von Zeichenfolgen die mittels AllocSysString reserviert wurden verantwortlich ist: „Allocating and Releasing Memory for a BSTR (Visual C++ Concepts)„.

Kommentare

2 Kommentare zu „AllocSysString“

  1. Avatar von Onkel Sven

    Spiel‘ mal den Erklärbär und sage mir, warum da überhaupt mit BSTRs herumspielst. Bei ParseScriptText gibt es doch nur normale Unicode-Strings.

  2. Avatar von Uwe Keim

    Ja wenn ich DAS noch wüßte. Inzwischen habe ich das auch entsprechend umgestellt.

    Ich hätte ja auch gut mit BSTRs rumspielen können, ich hätte nur wieder freigeben müssen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.