Commit 0e9e9a2c authored by Kim F. Storm's avatar Kim F. Storm

(fringe_bmp): Change to pointer.

(max_fringe_bmp): New var.
(w32_define_fringe_bitmap): Expand fringe_bmp.
(w32_draw_fringe_bitmap): Check max_fringe_bmp.
(w32_destroy_fringe_bitmap): Likewise.
parent ad67849e
......@@ -62,7 +62,8 @@ Boston, MA 02111-1307, USA. */
/* Fringe bitmaps. */
static HBITMAP fringe_bmp[MAX_FRINGE_BITMAPS];
static int max_fringe_bmp = 0;
static HBITMAP *fringe_bmp = 0;
/* Non-nil means Emacs uses toolkit scroll bars. */
......@@ -704,7 +705,7 @@ w32_draw_fringe_bitmap (w, row, p)
p->bx, p->by, p->nx, p->ny);
}
if (p->which)
if (p->which && p->which < max_fringe_bmp)
{
HBITMAP pixmap = fringe_bmp[p->which];
HDC compat_hdc;
......@@ -767,6 +768,15 @@ w32_define_fringe_bitmap (which, bits, h, wd)
unsigned short *bits;
int h, wd;
{
if (which >= max_fringe_bmp)
{
int i = max_fringe_bmp;
max_fringe_bmp = which + 20;
fringe_bmp = (HBITMAP *) xrealloc (fringe_bmp, max_fringe_bmp * sizeof (HBITMAP));
while (i < max_fringe_bmp)
fringe_bmp[i++] = 0;
}
fringe_bmp[which] = CreateBitmap (wd, h, 1, 1, bits);
}
......@@ -774,6 +784,9 @@ static void
w32_destroy_fringe_bitmap (which)
int which;
{
if (which >= max_fringe_bmp)
return;
if (fringe_bmp[which])
DeleteObject (fringe_bmp[which]);
fringe_bmp[which] = 0;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment