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:18:14 +0400
committerRafael Ávila de Espíndola <respindola@mozilla.com>2012-07-20 20:18:14 +0400
commit10860416803280f05cbe20f97a3ec02a7c697bf4 (patch)
treedb44628cb09eb677e0faf14745f8385f905550fd
parentb5c4c0c270eaeac051f8976bd7771ed1a3a7ec2d (diff)
Use early returns.
-rw-r--r--mach_override/mach_override.c30
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;
}
/***************************************************************************//**