[gnome-chess] Simplify implementation of ChessEngine.write()



commit 0dd10d969b77019b4f2a1a43194547155842e014
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Tue Jan 7 18:10:36 2014 -0600

    Simplify implementation of ChessEngine.write()

 src/chess-engine.vala |   18 +++++-------------
 1 files changed, 5 insertions(+), 13 deletions(-)
---
diff --git a/src/chess-engine.vala b/src/chess-engine.vala
index 842ddd2..c0911a5 100644
--- a/src/chess-engine.vala
+++ b/src/chess-engine.vala
@@ -153,21 +153,13 @@ public abstract class ChessEngine : Object
     protected void write (char[] data)
     {
         size_t offset = 0;
-        size_t n_written;
-        
-        while (offset < data.length)
-        {
-            /* Unnecessary copying but there seems to be a vala bug here */
-            char[] d = new char[data.length - offset];
-            for (int i = 0; i < data.length - offset; i++)
-                d[i] = data[offset + i];
-
-            n_written = Posix.write(stdin_fd, d, d.length);
-            if (n_written < 0)
-                return;
+        size_t n_written = 0;
 
+        do
+        {
+            n_written = Posix.write(stdin_fd, &data[offset], data.length - offset);
             offset += n_written;
-        }
+        } while (n_written > 0 && offset < data.length);
     }
 
     protected void write_line (string line)


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