OSDN Git Service

ファイルロードを高速化した
[fooeditengine/FooEditEngine.git] / Core / StringBuffer.cs
index b1a03c9..175f516 100644 (file)
@@ -83,6 +83,11 @@ namespace FooEditEngine
 
         internal DocumentUpdateEventHandler Update;
 
+        internal void Allocate(int count)
+        {
+            this.buf.Allocate(count);
+        }
+
         internal void Replace(StringBuffer buf)
         {
             this.Replace(buf.buf);
@@ -112,14 +117,10 @@ namespace FooEditEngine
 
         internal async Task LoadAsync(TextReader fs, CancellationTokenSource tokenSource = null)
         {
-            char[] str = new char[1024 * 256];
+            char[] str = new char[1024 * 1024];
             int readCount;
             do
             {
-                int index = this.Length;
-                if (index < 0)
-                    index = 0;
-
                 readCount = await fs.ReadAsync(str, 0, str.Length).ConfigureAwait(false);
 
                 //内部形式に変換する
@@ -128,7 +129,7 @@ namespace FooEditEngine
                 using (await this.rwlock.WriterLockAsync())
                 {
                     //str.lengthは事前に確保しておくために使用するので影響はない
-                    this.buf.InsertRange(index, internal_str);
+                    this.buf.AddRange(internal_str);
                 }
 
                 if (tokenSource != null)