Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
cs24-21fa
project04
Commits
65899822
Commit
65899822
authored
4 years ago
by
Caleb C. Sander
Browse files
Options
Download
Email Patches
Plain Diff
Fix heap clearing being timed
parent
953e3065
master
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
driver/mdriver.c
+3
-3
driver/mdriver.c
include/memlib.h
+2
-1
include/memlib.h
src/memlib.c
+5
-3
src/memlib.c
with
10 additions
and
7 deletions
+10
-7
driver/mdriver.c
View file @
65899822
...
...
@@ -776,7 +776,7 @@ static int eval_mm_valid(trace_t *trace, range_t **ranges)
char
*
p
;
/* Reset the heap and free any records in the range list */
mem_reset_brk
();
mem_reset_brk
(
true
);
reinit_trace
(
trace
);
/* Call the mm package's init function */
...
...
@@ -918,7 +918,7 @@ static double eval_mm_util(trace_t *trace, int tracenum)
reinit_trace
(
trace
);
/* initialize the heap and the mm malloc package */
mem_reset_brk
();
mem_reset_brk
(
false
);
if
(
!
mm_init
())
{
app_error
(
"trace %d: mm_init failed in eval_mm_util"
,
tracenum
);
}
...
...
@@ -1004,7 +1004,7 @@ static void eval_mm_speed(void *ptr)
reinit_trace
(
trace
);
/* Reset the heap and initialize the mm package */
mem_reset_brk
();
mem_reset_brk
(
false
);
if
(
!
mm_init
())
{
app_error
(
"mm_init failed in eval_mm_speed"
);
}
...
...
This diff is collapsed.
Click to expand it.
include/memlib.h
View file @
65899822
#include <stdbool.h>
#include <stddef.h>
#include <sys/types.h>
void
mem_init
(
void
);
void
mem_deinit
(
void
);
void
*
mem_sbrk
(
ssize_t
incr
);
void
mem_reset_brk
(
void
);
void
mem_reset_brk
(
bool
clear
);
void
*
mem_heap_lo
(
void
);
void
*
mem_heap_hi
(
void
);
size_t
mem_heapsize
(
void
);
This diff is collapsed.
Click to expand it.
src/memlib.c
View file @
65899822
...
...
@@ -30,7 +30,7 @@ void mem_init() {
);
/* Heap is initially empty. */
mem_reset_brk
();
mem_reset_brk
(
true
);
}
/*
...
...
@@ -43,11 +43,13 @@ void mem_deinit() {
/*
* mem_reset_brk - reset the simulated brk pointer to make an empty heap
*/
void
mem_reset_brk
()
{
void
mem_reset_brk
(
bool
clear
)
{
mem_brk
=
heap
;
/* Fill heap with garbage since it is uninitialized. */
memset
(
heap
,
0xCC
,
MAX_HEAP
);
if
(
clear
)
{
memset
(
heap
,
0xCC
,
MAX_HEAP
);
}
}
/*
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help