summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Melcher <github@matthiasm.com>2018-12-28 16:21:48 -0800
committerGitHub <noreply@github.com>2018-12-28 16:21:48 -0800
commit6097bde83cfbaadf2247ae25c9272ee4a821fb35 (patch)
treeebaf596a5c019a192878ab54da41283540471aa8 /src
parent59612f6e7ec1c35d8fa23eee6e9c0c41a2ed3a80 (diff)
parent29fe0c43df7bad2df0f4445994b9d5d851bc2cdb (diff)
Merge pull request #10 from MatthiasWM/master
Updated macOS build documentation for 1.4
Diffstat (limited to 'src')
-rw-r--r--src/Fl_JPEG_Image.cxx5
-rw-r--r--src/Fl_Menu_add.cxx2
-rw-r--r--src/gl_draw.cxx34
3 files changed, 19 insertions, 22 deletions
diff --git a/src/Fl_JPEG_Image.cxx b/src/Fl_JPEG_Image.cxx
index 384acd2a4..6dcf030b5 100644
--- a/src/Fl_JPEG_Image.cxx
+++ b/src/Fl_JPEG_Image.cxx
@@ -255,9 +255,8 @@ extern "C" {
static void jpeg_mem_src(j_decompress_ptr cinfo, const unsigned char *data)
{
- my_src_ptr src;
- cinfo->src = (struct jpeg_source_mgr *)malloc(sizeof(my_source_mgr));
- src = (my_src_ptr)cinfo->src;
+ my_src_ptr src = (my_source_mgr*)malloc(sizeof(my_source_mgr));
+ cinfo->src = &(src->pub);
src->pub.init_source = init_source;
src->pub.fill_input_buffer = fill_input_buffer;
src->pub.skip_input_data = skip_input_data;
diff --git a/src/Fl_Menu_add.cxx b/src/Fl_Menu_add.cxx
index 32da93df3..57534f4e3 100644
--- a/src/Fl_Menu_add.cxx
+++ b/src/Fl_Menu_add.cxx
@@ -176,7 +176,7 @@ int Fl_Menu_Item::insert(
if (m->flags&FL_SUBMENU && !compare(item, m->text)) break;
if (!m->text) { /* create a new menu */
- int n = (index==-1) ? (int) (m-array) : index;
+ int n = (int)(m-array); /* index is not used if label contains a path */
array = array_insert(array, msize, n, item, FL_SUBMENU|flags1);
msize++;
array = array_insert(array, msize, n+1, 0, 0);
diff --git a/src/gl_draw.cxx b/src/gl_draw.cxx
index 695c4ee08..ed35d8d62 100644
--- a/src/gl_draw.cxx
+++ b/src/gl_draw.cxx
@@ -97,26 +97,24 @@ void gl_remove_displaylist_fonts()
for (int j = 0 ; j < FL_FREE_FONT ; ++j)
{
- Fl_Font_Descriptor* past = 0;
- Fl_Font_Descriptor** s_first = Fl_Gl_Window_Driver::global()->fontnum_to_fontdescriptor(j);
- Fl_Font_Descriptor* f = *s_first;
- while (f != 0) {
- if(f->listbase) {
- if(f == *s_first) {
- *s_first = f->next;
- }
- else {
- past->next = f->next;
+ Fl_Font_Descriptor *prevDesc = 0L, *nextDesc = 0L;
+ Fl_Font_Descriptor *&firstDesc = *Fl_Gl_Window_Driver::global()->fontnum_to_fontdescriptor(j);
+ for (Fl_Font_Descriptor *desc = firstDesc; desc; desc = nextDesc)
+ {
+ nextDesc = desc->next;
+ if(desc->listbase) {
+ // remove descriptor from a single-linked list
+ if(desc == firstDesc) {
+ firstDesc = desc->next;
+ } else if (prevDesc) {
+ // prevDesc should not be NULL, but this test will make static analysis shut up
+ prevDesc->next = desc->next;
}
// It would be nice if this next line was in a destructor somewhere
- glDeleteLists(f->listbase, Fl_Gl_Window_Driver::global()->genlistsize());
- Fl_Font_Descriptor* tmp = f;
- f = f->next;
- delete tmp;
- }
- else {
- past = f;
- f = f->next;
+ glDeleteLists(desc->listbase, Fl_Gl_Window_Driver::global()->genlistsize());
+ delete desc;
+ } else {
+ prevDesc = desc;
}
}
}