network: Utilize image_id argument to initialize_before.

We don't need to search for our own image_id, we already have it now,
so just use it.
This commit is contained in:
Augustin Cavalier
2019-02-01 20:33:41 -05:00
parent c5e4e4ffb4
commit 67ef9f72fc
2 changed files with 14 additions and 27 deletions
+7 -13
View File
@@ -15,27 +15,21 @@
static void static void
find_own_image() find_own_image(image_id id)
{ {
int32 cookie = 0;
image_info info; image_info info;
while (get_next_image_info(B_CURRENT_TEAM, &cookie, &info) == B_OK) { if (get_image_info(id, &info) == B_OK) {
if (((addr_t)info.text <= (addr_t)find_own_image __gNetAPIStart = (addr_t)min_c(info.text, info.data);
&& (addr_t)info.text + (size_t)info.text_size > (addr_t)find_own_image)) { __gNetAPIEnd = min_c((addr_t)info.text + info.text_size,
// found us (addr_t)info.data + info.data_size);
__gNetAPIStart = (addr_t)min_c(info.text, info.data);
__gNetAPIEnd = min_c((addr_t)info.text + info.text_size,
(addr_t)info.data + info.data_size);
break;
}
} }
} }
extern "C" void extern "C" void
initialize_before(image_id) initialize_before(image_id id)
{ {
// If in compatibility mode get our code address range. // If in compatibility mode get our code address range.
if (__gR5Compatibility) if (__gR5Compatibility)
find_own_image(); find_own_image(id);
} }
+7 -14
View File
@@ -24,26 +24,19 @@ addr_t __gNetAPIEnd;
static void static void
find_own_image() find_own_image(image_id id)
{ {
int32 cookie = 0;
image_info info; image_info info;
while (get_next_image_info(B_CURRENT_TEAM, &cookie, &info) == B_OK) { if (get_image_info(id, &info) == B_OK) {
if (((addr_t)info.text <= (addr_t)find_own_image __gNetworkStart = (addr_t)min_c(info.text, info.data);
&& (addr_t)info.text + (addr_t)info.text_size __gNetworkEnd = min_c((addr_t)info.text + info.text_size,
> (addr_t)find_own_image)) { (addr_t)info.data + info.data_size);
// found us
__gNetworkStart = (addr_t)min_c(info.text, info.data);
__gNetworkEnd = min_c((addr_t)info.text + info.text_size,
(addr_t)info.data + info.data_size);
break;
}
} }
} }
extern "C" void extern "C" void
initialize_before(image_id) initialize_before(image_id our_image)
{ {
// determine if we have to run in BeOS compatibility mode // determine if we have to run in BeOS compatibility mode
@@ -81,7 +74,7 @@ initialize_before(image_id)
if (enable > 0) { if (enable > 0) {
__gR5Compatibility = true; __gR5Compatibility = true;
find_own_image(); find_own_image(our_image);
debug_printf("libnetwork.so running in R5 compatibility mode.\n"); debug_printf("libnetwork.so running in R5 compatibility mode.\n");
return; return;
} }