From: Jay Freeman (saurik) Date: Mon, 16 Dec 2013 12:44:04 +0000 (-0800) Subject: Replace simpler block usage with function pointers. X-Git-Url: https://git.saurik.com/hfs.git/commitdiff_plain/89b80bd7e840c817cacc79c83db861a0236e2279 Replace simpler block usage with function pointers. --- diff --git a/fsck_hfs/dfalib/fsck_journal.c b/fsck_hfs/dfalib/fsck_journal.c index 0836934..f5e8b12 100644 --- a/fsck_hfs/dfalib/fsck_journal.c +++ b/fsck_hfs/dfalib/fsck_journal.c @@ -53,23 +53,27 @@ extern char debug; typedef struct SwapType { const char *name; - uint16_t (^swap16)(uint16_t); - uint32_t (^swap32)(uint32_t); - uint64_t (^swap64)(uint64_t); + uint16_t (*swap16)(uint16_t); + uint32_t (*swap32)(uint32_t); + uint64_t (*swap64)(uint64_t); } swapper_t; +uint16_t ident16(uint16_t x) { return x; } +uint32_t ident32(uint32_t x) { return x; } +uint64_t ident64(uint64_t x) { return x; } + static swapper_t nativeEndian = { "native endian", - ^(uint16_t x) { return x; }, - ^(uint32_t x) { return x; }, - ^(uint64_t x) { return x; } + &ident16, + &ident32, + &ident64, }; static swapper_t swappedEndian = { "swapped endian", - ^(uint16_t x) { return OSSwapInt16(x); }, - ^(uint32_t x) { return OSSwapInt32(x); }, - ^(uint64_t x) { return OSSwapInt64(x); } + &_OSSwapInt16, + &_OSSwapInt32, + &_OSSwapInt64, }; typedef int (__lambda_ journal_write_block_t)(off_t, void *, size_t);