From 0fe6a5f1ec7f039ee04368f5d974286b08ddb53f Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 29 Aug 2015 17:48:20 -0400
Subject: [PATCH] More effecient RegionFile zero'ing

Speeds up new Chunk Generation by using 2 4k block writes vs 2048 4 byte writes
more effecient than going in and out of native calls repeatedly.

diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java
index fe3fbb0..348706f 100644
--- a/src/main/java/net/minecraft/server/RegionFile.java
+++ b/src/main/java/net/minecraft/server/RegionFile.java
@@ -16,7 +16,7 @@ import java.util.zip.InflaterInputStream;
 
 public class RegionFile {
 
-    private static final byte[] a = new byte[4096];
+    private static final byte[] a = new byte[4096]; // Spigot - note: if this ever changes to not be 4096 bytes, update constructor! // PAIL: empty 4k block
     private final File b;
     private RandomAccessFile c;
     private final int[] d = new int[1024];
@@ -38,13 +38,9 @@ public class RegionFile {
             int i;
 
             if (this.c.length() < 4096L) {
-                for (i = 0; i < 1024; ++i) {
-                    this.c.writeInt(0);
-                }
-
-                for (i = 0; i < 1024; ++i) {
-                    this.c.writeInt(0);
-                }
+                // Spigot - more effecient chunk zero'ing
+                this.c.write(RegionFile.a); // Spigot
+                this.c.write(RegionFile.a); // Spigot
 
                 this.g += 8192;
             }
-- 
1.9.1