[vala/staging] libvaladoc: Don't change the size of an array in-parameter



commit a0d437af1ef37cdf7f985d7aa856b3bdb9eeeb9b
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Tue Jan 29 17:05:30 2019 +0100

    libvaladoc: Don't change the size of an array in-parameter
    
    Avoid a possible memory issue while the resize of an array reference is
    possible, the new length can't be propagated back to the caller.
    
    Issue an warning for unexpected string lengths.

 libvaladoc/markupwriter.vala | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
---
diff --git a/libvaladoc/markupwriter.vala b/libvaladoc/markupwriter.vala
index b796aa5b7..578701436 100644
--- a/libvaladoc/markupwriter.vala
+++ b/libvaladoc/markupwriter.vala
@@ -114,8 +114,9 @@ public class Valadoc.MarkupWriter {
                check_column (name);
 
                if (attributes.length % 2 != 0) {
-                       attributes.resize (attributes.length+1);
-                       attributes[attributes.length-1] = "";
+                       warning ("Given attributes array is not a list of pairs (name and value)");
+                       // This only effects array length of this in-parameter in this scope
+                       attributes.length -= 1;
                }
 
                var content = new StringBuilder ("<");
@@ -144,8 +145,9 @@ public class Valadoc.MarkupWriter {
                check_column (name);
 
                if (attributes.length % 2 != 0) {
-                       attributes.resize (attributes.length+1);
-                       attributes[attributes.length-1] = "";
+                       warning ("Given attributes array is not a list of pairs (name and value)");
+                       // This only effects array length of this in-parameter in this scope
+                       attributes.length -= 1;
                }
 
                var content = new StringBuilder ("<");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]