Ich bin mir nicht sicher, ob ich Vala oder GLib.Regex
missbrauche, weil ich für beide neu bin. Ich habe ein minimales Beispiel erstellt, das den Fehler reproduziert. Aus dem folgenden Code, würde ich erwarten, dass es a INPUTX b
sechsmal druckt, mit dem Präfix source
und result
abwechselnd:Die Verarbeitung von Vala-Strings beschädigt den Speicher. Warum und wie vermeiden?
public class Test
{
public static void run(string src)
{
var regex = new Regex("INPUT[0-9]");
for(int i = 0; i < 3; ++i)
{
stdout.printf(@"-- source: $src\n");
src = regex.replace(src, -1, 0, "value");
stdout.printf(@"-- result: $src\n\n");
}
}
public static void main()
{
Test.run("a INPUTX b");
}
}
ich diesen Code schrieb basierend auf the example in the docs. Nachdem jedoch mit valac Test.vala --pkg glib-2.0
Kompilieren und Ausführen, erhalte ich:
-- source: a INPUTX b
-- result: a INPUTX b
-- source: -- source:
-- result: N�
-- source: -- source:
-- result: PN�
Was mache ich falsch?
Sie sollten dies auf https://bugzilla.gnome.org/ melden. –
@ JensMühlenhoff: Danke für deinen Kommentar. Aber ich denke, das ist kein Käfer, oder? – theV0ID
Ich denke, es könnte sein, siehe die Antwort, die ich jetzt gepostet habe. –