diff options
author | Rafael Ávila de Espíndola <respindola@mozilla.com> | 2012-07-20 20:18:14 +0400 |
---|---|---|
committer | Rafael Ávila de Espíndola <respindola@mozilla.com> | 2012-07-20 20:18:14 +0400 |
commit | 10860416803280f05cbe20f97a3ec02a7c697bf4 (patch) | |
tree | db44628cb09eb677e0faf14745f8385f905550fd | |
parent | b5c4c0c270eaeac051f8976bd7771ed1a3a7ec2d (diff) |
Use early returns.
-rw-r--r-- | mach_override/mach_override.c | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/mach_override/mach_override.c b/mach_override/mach_override.c index 71b68da..549409d 100644 --- a/mach_override/mach_override.c +++ b/mach_override/mach_override.c @@ -372,8 +372,6 @@ allocateBranchIsland( { assert( island ); - mach_error_t err = err_none; - assert( sizeof( BranchIsland ) <= kPageSize ); #if defined(__ppc__) || defined(__POWERPC__) vm_address_t first = 0xfeffffff; @@ -387,29 +385,25 @@ allocateBranchIsland( #endif vm_address_t page = first; - int allocated = 0; vm_map_t task_self = mach_task_self(); - - 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 ) { + while( page != last ) { + mach_error_t err = vm_allocate( task_self, &page, kPageSize, 0 ); + if( err == err_none ) { + *island = (BranchIsland*) page; + return err_none; + } + if( err != KERN_NO_SPACE ) + return err; #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; - return err; + return KERN_NO_SPACE; } /***************************************************************************//** |