Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f43b36d

Browse files
committed
Optimize out some domain code
1 parent 54997c2 commit f43b36d

File tree

1 file changed

+5
-13
lines changed

1 file changed

+5
-13
lines changed

src/mono/mono/component/debugger-engine.c

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,6 @@ set_bp_in_method (MonoDomain *domain, MonoMethod *method, MonoSeqPointInfo *seq_
362362
typedef struct {
363363
MonoBreakpoint *bp;
364364
GPtrArray *methods;
365-
GPtrArray *method_domains;
366365
GPtrArray *method_seq_points;
367366

368367
MonoDomain *domain;
@@ -380,7 +379,6 @@ collect_domain_bp_inner (gpointer key, gpointer value, gpointer user_data)
380379

381380
/* Save the info locally to simplify the code inside the domain lock */
382381
g_ptr_array_add (ud->methods, m);
383-
g_ptr_array_add (ud->method_domains, ud->domain);
384382
g_ptr_array_add (ud->method_seq_points, seq_points);
385383
}
386384

@@ -389,11 +387,8 @@ void
389387
mono_jit_memory_manager_foreach_seq_point (dn_simdhash_ght_t *seq_points, dn_simdhash_ght_foreach_func func, gpointer user_data);
390388

391389
static void
392-
collect_domain_bp (gpointer key, gpointer value, gpointer user_data)
390+
collect_domain_bp (CollectDomainData *ud)
393391
{
394-
CollectDomainData *ud = (CollectDomainData*)user_data;
395-
ud->domain = (MonoDomain*)key;
396-
397392
// FIXME:
398393
MonoJitMemoryManager *jit_mm = get_default_jit_mm ();
399394
jit_mm_lock (jit_mm);
@@ -421,7 +416,6 @@ mono_de_set_breakpoint (MonoMethod *method, long il_offset, EventRequest *req, M
421416
MonoMethod *m;
422417
MonoSeqPointInfo *seq_points;
423418
GPtrArray *methods;
424-
GPtrArray *method_domains;
425419
GPtrArray *method_seq_points;
426420

427421
if (error)
@@ -442,7 +436,6 @@ mono_de_set_breakpoint (MonoMethod *method, long il_offset, EventRequest *req, M
442436
PRINT_DEBUG_MSG (1, "[dbg] Setting %sbreakpoint at %s:0x%x.\n", (req->event_kind == EVENT_KIND_STEP) ? "single step " : "", method ? mono_method_full_name (method, TRUE) : "<all>", (int)il_offset);
443437

444438
methods = g_ptr_array_new ();
445-
method_domains = g_ptr_array_new ();
446439
method_seq_points = g_ptr_array_new ();
447440

448441
mono_loader_lock ();
@@ -451,20 +444,20 @@ mono_de_set_breakpoint (MonoMethod *method, long il_offset, EventRequest *req, M
451444
memset (&user_data, 0, sizeof (user_data));
452445
user_data.bp = bp;
453446
user_data.methods = methods;
454-
user_data.method_domains = method_domains;
455447
user_data.method_seq_points = method_seq_points;
456-
mono_de_foreach_domain (collect_domain_bp, &user_data);
448+
user_data.domain = mono_get_root_domain ();
449+
collect_domain_bp (&user_data);
457450

458451
for (guint i = 0; i < methods->len; ++i) {
459452
m = (MonoMethod *)g_ptr_array_index (methods, i);
460-
domain = (MonoDomain *)g_ptr_array_index (method_domains, i);
453+
domain = user_data.domain;
461454
seq_points = (MonoSeqPointInfo *)g_ptr_array_index (method_seq_points, i);
462455
set_bp_in_method (domain, m, seq_points, bp, error);
463456
}
464457

465458
// trying to get the seqpoints directly from the jit info of the method
466459
// the seqpoints in get_default_jit_mm may not be found for AOTed methods in arm64
467-
if (methods->len == 0)
460+
if (methods->len == 0)
468461
{
469462
MonoJitInfo *ji;
470463
(void)mono_jit_search_all_backends_for_jit_info (method, &ji);
@@ -477,7 +470,6 @@ mono_de_set_breakpoint (MonoMethod *method, long il_offset, EventRequest *req, M
477470
mono_loader_unlock ();
478471

479472
g_ptr_array_free (methods, TRUE);
480-
g_ptr_array_free (method_domains, TRUE);
481473
g_ptr_array_free (method_seq_points, TRUE);
482474

483475
if (error && !is_ok (error)) {

0 commit comments

Comments
 (0)