3b17f266c9ecbd8324bf8da02d7a5b650899150d
braney
  Thu Nov 13 14:28:37 2014 -0800
fix variable size problem #14373
diff --git src/lib/bPlusTree.c src/lib/bPlusTree.c
index 6b09e15..6713639 100644
--- src/lib/bPlusTree.c
+++ src/lib/bPlusTree.c
@@ -487,42 +487,42 @@
 	mustWrite(f, keyBuf, keySize);
 	writeOne(f, nextChild);
 	nextChild += bytesInNextLevelBlock;
 	++slotsUsed;
 	}
     assert(slotsUsed == shortCountOne);
 
     /* Write out empty slots as all zero. */
     int slotSize = keySize + sizeof(bits64);
     for (j=countOne; j<blockSize; ++j)
 	repeatCharOut(f, 0, slotSize);
     }
 return endLevel;
 }
 
-static void writeLeafLevel(bits16 blockSize, void *itemArray, int itemSize, int itemCount, 
+static void writeLeafLevel(bits16 blockSize, void *itemArray, int itemSize, bits64 itemCount, 
 	void (*fetchKey)(const void *va, char *keyBuf), bits32 keySize,
 	void* (*fetchVal)(const void *va), bits32 valSize,
 	FILE *f)
 /* Write out leaf level blocks. */
 {
 char *items = itemArray;
-int i,j;
+bits64 i,j;
 UBYTE isLeaf = TRUE;
 UBYTE reserved = 0;
 bits16 countOne;
-int countLeft = itemCount;
+bits64 countLeft = itemCount;
 char keyBuf[keySize+1];
 keyBuf[keySize] = 0;
 for (i=0; i<itemCount; i += countOne)
     {
     /* Write block header */
     if (countLeft > blockSize)
         countOne = blockSize;
     else
         countOne = countLeft;
     writeOne(f, isLeaf);
     writeOne(f, reserved);
     writeOne(f, countOne);
 
     /* Write out position in genome and in file for each item. */
     for (j=0; j<countOne; ++j)