From f79ef4cef30056359336ac2cbef05904e2eae1e5 Mon Sep 17 00:00:00 2001 From: Phillip Stephens Date: Sun, 26 Jun 2016 03:36:29 -0700 Subject: [PATCH] Fix fragmentation handling --- src/Card.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Card.cpp b/src/Card.cpp index aed852e..ba8d2af 100644 --- a/src/Card.cpp +++ b/src/Card.cpp @@ -105,11 +105,11 @@ void Card::write(FileHandle* f, const void* buf, size_t size) f->file->m_modifiedTime = getGCTime(); if (f->blockOffset > BlockSize) { + f->curBlock = m_currentBat->m_map[f->curBlock - FSTBlocks]; + f->blockOffset = 0; /* TODO: Add error */ if (f->curBlock == 0xFFFF) return; - - f->curBlock = m_currentBat->m_map[f->curBlock]; } size_t blockOffset = (f->curBlock * BlockSize) + f->offset; fseek(mc, blockOffset, SEEK_SET);