         guard objectStart == -1 && vectorNumElems == -1 else {
             throw FlatBufferBuilderError.ObjectIsNotClosed
         }
-        currentVTable = Array<Int32>(count: numOfProperties, repeatedValue: 0)
+        currentVTable.removeAll(keepCapacity: true)
+        currentVTable.reserveCapacity(numOfProperties)
+        for _ in 0..<numOfProperties {
+            currentVTable.append(0)
+        }
         objectStart = Int32(cursor)
     }
     

        
        return Array(UnsafeBufferPointer(start: UnsafePointer<UInt8>(_data).advancedBy(leftCursor - prefixLength), count: cursor+prefixLength))
    }
}

public final class FlatBufferBuilder {
    
    static var builderPool : [FlatBufferBuilder] = []
    
    public var cache : [ObjectIdentifier : Offset] = [:]
    public var inProgress : Set<ObjectIdentifier> = []
    public var deferedBindings : [(object:Any, cursor:Int)] = []
    
    public var config : BinaryBuildConfig
    
    var capacity : Int
    private var _data : UnsafeMutablePointer<UInt8>
