diff --git a/libguac/include/palette.h b/libguac/include/palette.h index fb30066e..d2263e95 100644 --- a/libguac/include/palette.h +++ b/libguac/include/palette.h @@ -51,7 +51,8 @@ typedef struct guac_palette_entry { typedef struct guac_palette { guac_palette_entry entries[0xFFF]; - int colors; + int colors[256]; + int size; } guac_palette; diff --git a/libguac/src/palette.c b/libguac/src/palette.c index dc18ebb8..8d38c771 100644 --- a/libguac/src/palette.c +++ b/libguac/src/palette.c @@ -80,13 +80,14 @@ guac_palette* guac_palette_alloc(cairo_surface_t* surface) { if (entry->index == 0) { /* Stop if already at capacity */ - if (palette->colors == 256) { + if (palette->size == 256) { guac_palette_free(palette); return NULL; } /* Add color to map, done */ - entry->index = ++palette->colors; + palette->colors[palette->size] = color; + entry->index = ++palette->size; entry->color = color; break; diff --git a/libguac/src/protocol.c b/libguac/src/protocol.c index fffce3fa..18647c97 100644 --- a/libguac/src/protocol.c +++ b/libguac/src/protocol.c @@ -230,9 +230,11 @@ int __guac_socket_write_length_png(guac_socket* socket, cairo_surface_t* surface guac_palette* palette = guac_palette_alloc(surface); if (palette != NULL) { + fprintf(stderr, "Created palette with %i entries.\n", - palette->colors); + palette->size); + guac_palette_free(palette); }