Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mach_override.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Ávila de Espíndola <respindola@mozilla.com>2012-07-20 20:09:35 +0400
committerRafael Ávila de Espíndola <respindola@mozilla.com>2012-07-20 20:09:35 +0400
commitb5c4c0c270eaeac051f8976bd7771ed1a3a7ec2d (patch)
treec6ef05b5c268ccafc287c6b9fe46eac9cf4f18f1
parentbb8f80404a1597c96299a127e5f2dd4d0f726509 (diff)
Simplify allocateBranchIsland.
-rw-r--r--mach_override/mach_override.c48
1 files changed, 23 insertions, 25 deletions
diff --git a/mach_override/mach_override.c b/mach_override/mach_override.c
index 2d0804b..71b68da 100644
--- a/mach_override/mach_override.c
+++ b/mach_override/mach_override.c
@@ -373,43 +373,41 @@ allocateBranchIsland(
assert( island );
mach_error_t err = err_none;
-
- if( !err ) {
- assert( sizeof( BranchIsland ) <= kPageSize );
+
+ assert( sizeof( BranchIsland ) <= kPageSize );
#if defined(__ppc__) || defined(__POWERPC__)
- vm_address_t first = 0xfeffffff;
- vm_address_t last = 0xfe000000 + kPageSize;
+ vm_address_t first = 0xfeffffff;
+ vm_address_t last = 0xfe000000 + kPageSize;
#elif defined(__x86_64__)
- vm_address_t first = ((uint64_t)originalFunctionAddress & ~(uint64_t)(((uint64_t)1 << 31) - 1)) | ((uint64_t)1 << 31); // start in the middle of the page?
- vm_address_t last = 0x0;
+ vm_address_t first = ((uint64_t)originalFunctionAddress & ~(uint64_t)(((uint64_t)1 << 31) - 1)) | ((uint64_t)1 << 31); // start in the middle of the page?
+ vm_address_t last = 0x0;
#else
- vm_address_t first = 0xffc00000;
- vm_address_t last = 0xfffe0000;
+ vm_address_t first = 0xffc00000;
+ vm_address_t last = 0xfffe0000;
#endif
- vm_address_t page = first;
- int allocated = 0;
- vm_map_t task_self = mach_task_self();
+ vm_address_t page = first;
+ int allocated = 0;
+ vm_map_t task_self = mach_task_self();
- while( !err && !allocated && page != last ) {
+ while( !err && !allocated && page != last ) {
- err = vm_allocate( task_self, &page, kPageSize, 0 );
- if( err == err_none )
- allocated = 1;
- else if( err == KERN_NO_SPACE ) {
+ err = vm_allocate( task_self, &page, kPageSize, 0 );
+ if( err == err_none )
+ allocated = 1;
+ else if( err == KERN_NO_SPACE ) {
#if defined(__x86_64__)
- page -= kPageSize;
+ page -= kPageSize;
#else
- page += kPageSize;
+ page += kPageSize;
#endif
- err = err_none;
- }
+ err = err_none;
}
- if( allocated )
- *island = (BranchIsland*) page;
- else if( !allocated && !err )
- err = KERN_NO_SPACE;
}
+ if( allocated )
+ *island = (BranchIsland*) page;
+ else if( !allocated && !err )
+ err = KERN_NO_SPACE;
return err;
}