summaryrefslogtreecommitdiffstats
path: root/rbutil/ipodpatcher/ipodio-win32.c
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2013-01-01 11:04:21 +0100
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2013-01-01 15:06:41 +0100
commitb63d429c8f2c68994600d98bfaddf59ca16fc889 (patch)
tree6cd4d216f57f28d95faf96a913188646f5527909 /rbutil/ipodpatcher/ipodio-win32.c
parent45cda1fdcc963db4824224af362de780e0d29097 (diff)
downloadrockbox-b63d429c8f2c68994600d98bfaddf59ca16fc889.tar.gz
rockbox-b63d429c8f2c68994600d98bfaddf59ca16fc889.tar.bz2
rockbox-b63d429c8f2c68994600d98bfaddf59ca16fc889.zip
Provide dealloc function to ipodpatcher.
On Windows the sector buffer is allocated using VirtualAlloc, thus releasing this buffer should be done using VirtualFree. Provide an additional function for deallocating the buffer so users of ipodpatcher do not need to know about this. Change-Id: Ibb0fc575a185148a389e63935e86a392bf8d180d
Diffstat (limited to 'rbutil/ipodpatcher/ipodio-win32.c')
-rw-r--r--rbutil/ipodpatcher/ipodio-win32.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/rbutil/ipodpatcher/ipodio-win32.c b/rbutil/ipodpatcher/ipodio-win32.c
index d4bdbf0173..cea218774a 100644
--- a/rbutil/ipodpatcher/ipodio-win32.c
+++ b/rbutil/ipodpatcher/ipodio-win32.c
@@ -170,6 +170,19 @@ int ipod_alloc_buffer(struct ipod_t* ipod, int bufsize)
return 0;
}
+int ipod_dealloc_buffer(struct ipod_t* ipod)
+{
+ if (ipod->sectorbuf == NULL) {
+ return -1;
+ }
+ if(!VirtualFree(ipod->sectorbuf, 0, MEM_RELEASE)) {
+ ipod_print_error(" Error releasing buffer ");
+ return -1;
+ }
+ ipod->sectorbuf = NULL;
+ return 0;
+}
+
int ipod_seek(struct ipod_t* ipod, unsigned long pos)
{
if (SetFilePointer(ipod->dh, pos, NULL, FILE_BEGIN)==0xffffffff) {