Fix ToMap conversion of array of tables (#83)


diff --git a/tomltree_conversions.go b/tomltree_conversions.go
index 6a821d5..bc6a967 100644
--- a/tomltree_conversions.go
+++ b/tomltree_conversions.go
@@ -126,10 +126,11 @@
 	for k, v := range t.values {
 		switch node := v.(type) {
 		case []*TomlTree:
-			result[k] = make([]interface{}, 0)
+			array := make([]interface{}, 0)
 			for _, item := range node {
-				result[k] = item.ToMap()
+				array = append(array, item.ToMap())
 			}
+			result[k] = array
 		case *TomlTree:
 			result[k] = node.ToMap()
 		case map[string]interface{}:
diff --git a/tomltree_conversions_test.go b/tomltree_conversions_test.go
index a4c8486..ddea8c4 100644
--- a/tomltree_conversions_test.go
+++ b/tomltree_conversions_test.go
@@ -80,3 +80,25 @@
 	}
 	testMaps(t, tree.ToMap(), expected)
 }
+
+func TestTomlTreeConversionToMapWithTablesInMultipleChunks(t *testing.T) {
+	tree, _ := Load(`
+	[[menu.main]]
+        a = "menu 1"
+        b = "menu 2"
+        [[menu.main]]
+        c = "menu 3"
+        d = "menu 4"`)
+	expected := map[string]interface{}{
+		"menu": map[string]interface{}{
+			"main": []interface{}{
+				map[string]interface{}{"a": "menu 1", "b": "menu 2", },
+				map[string]interface{}{"c": "menu 3", "d": "menu 4", },
+			},
+		},
+	}
+	treeMap := tree.ToMap()
+
+
+	testMaps(t, treeMap, expected)
+}