Merge branch 'jb/hotfix' into jb/fix

This commit is contained in:
Joe Bryan 2022-11-10 14:03:57 -05:00
commit 2e4bdb5c13
4 changed files with 23 additions and 1 deletions

View File

@ -84,9 +84,14 @@
void void
u3e_foul(void); u3e_foul(void);
/* u3e_init(): initialize page tracking. /* u3e_init(): initialize guard page tracking.
*/ */
void void
u3e_init(void); u3e_init(void);
/* u3e_ward(): reposition guard page if needed.
*/
void
u3e_ward(u3_post low_p, u3_post hig_p);
#endif /* ifndef U3_EVENTS_H */ #endif /* ifndef U3_EVENTS_H */

View File

@ -1097,6 +1097,8 @@ u3e_foul(void)
memset((void*)u3P.dit_w, 0xff, sizeof(u3P.dit_w)); memset((void*)u3P.dit_w, 0xff, sizeof(u3P.dit_w));
} }
/* u3e_init(): initialize guard page tracking.
*/
void void
u3e_init(void) u3e_init(void)
{ {
@ -1104,3 +1106,15 @@ u3e_init(void)
_ce_center_guard_page(); _ce_center_guard_page();
#endif #endif
} }
/* u3e_ward(): reposition guard page if needed.
*/
void
u3e_ward(u3_post low_p, u3_post hig_p)
{
#ifdef U3_GUARD_PAGE
if ( (low_p > gar_pag_p) || (hig_p < gar_pag_p) ) {
_ce_center_guard_page();
}
#endif
}

View File

@ -808,6 +808,7 @@ u3m_leap(c3_w pad_w)
u3R->cap_p -= len_w; u3R->cap_p -= len_w;
rod_u = _pave_south(u3a_into(bot_p), c3_wiseof(u3a_road), len_w); rod_u = _pave_south(u3a_into(bot_p), c3_wiseof(u3a_road), len_w);
u3e_ward(rod_u->cap_p, rod_u->hat_p);
#if 0 #if 0
fprintf(stderr, "leap: from north %p (cap 0x%x), to south %p\r\n", fprintf(stderr, "leap: from north %p (cap 0x%x), to south %p\r\n",
u3R, u3R,
@ -820,6 +821,7 @@ u3m_leap(c3_w pad_w)
u3R->cap_p += len_w; u3R->cap_p += len_w;
rod_u = _pave_north(u3a_into(bot_p), c3_wiseof(u3a_road), len_w); rod_u = _pave_north(u3a_into(bot_p), c3_wiseof(u3a_road), len_w);
u3e_ward(rod_u->hat_p, rod_u->cap_p);
#if 0 #if 0
fprintf(stderr, "leap: from south %p (cap 0x%x), to north %p\r\n", fprintf(stderr, "leap: from south %p (cap 0x%x), to north %p\r\n",
u3R, u3R,

View File

@ -8,6 +8,7 @@ _setup(void)
{ {
u3m_init(); u3m_init();
u3m_pave(c3y); u3m_pave(c3y);
u3e_init();
} }
static void static void