summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjcid <devnull@localhost>2008-05-25 21:08:25 +0200
committerjcid <devnull@localhost>2008-05-25 21:08:25 +0200
commit8ecf4c9e1401fa4032de36e42d23aae00b18dbaf (patch)
treede537aaebf2cac152ad0e107d86af158692015dc /src
parent6ae9d67432511edb8cb144e1bbe53afde7111047 (diff)
- Fixed a memory leak in nav.c.
Diffstat (limited to 'src')
-rw-r--r--src/nav.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/nav.c b/src/nav.c
index 5329a326..e5215f40 100644
--- a/src/nav.c
+++ b/src/nav.c
@@ -116,17 +116,18 @@ static void Nav_stack_truncate(BrowserWindow *bw, int pos)
while (pos < dList_length(bw->nav_stack)) {
data = dList_nth_data(bw->nav_stack, pos);
dList_remove_fast (bw->nav_stack, data);
+ dFree(data);
}
}
/*
* Insert a nav_stack_item into the stack at a given position.
*/
-static void Nav_stack_insert(BrowserWindow *bw, int url_idx,
- int stack_idx, int posx, int posy)
+static void Nav_stack_append(BrowserWindow *bw, int url_idx)
{
void *data;
nav_stack_item *nsi;
+ int stack_idx = dList_length (bw->nav_stack);
dReturn_if_fail (bw != NULL);
@@ -137,9 +138,9 @@ static void Nav_stack_insert(BrowserWindow *bw, int url_idx,
/* Insert the new element */
nsi = dNew(nav_stack_item, 1);
nsi->url_idx = url_idx;
- nsi->posx = posx;
- nsi->posy = posy;
- dList_insert_pos (bw->nav_stack, nsi, stack_idx);
+ nsi->posx = 0;
+ nsi->posy = 0;
+ dList_append (bw->nav_stack, nsi);
}
/*
@@ -297,7 +298,7 @@ void a_Nav_expect_done(BrowserWindow *bw)
MSG("a_Nav_expect_done: reload!\n");
} else {
Nav_stack_truncate(bw, a_Nav_stack_ptr(bw) + 1);
- Nav_stack_insert(bw, url_idx, a_Nav_stack_ptr(bw) + 1, 0, 0);
+ Nav_stack_append(bw, url_idx);
Nav_stack_move_ptr(bw, 1);
}