rem: default: abort();
add: case glgfx_bitmap_attr_unknown: case glgfx_bitmap_attr_max: rc = false; break;
context: bool glgfx_bitmap_getattr(struct glgfx_bitmap* bm,			  enum glgfx_bitmap_attr attr,			  intptr_t* storage) {  if (bm == NULL || storage == NULL ||      attr <= glgfx_bitmap_attr_unknown || attr >= glgfx_bitmap_attr_max) {    return false;  }  pthread_mutex_lock(&glgfx_mutex);  switch (attr) {    case glgfx_bitmap_attr_width:      *storage = bm->width;      break;    case glgfx_bitmap_attr_height:      *storage = bm->height;      break;    case glgfx_bitmap_attr_format:       *storage = bm->format;      break;    case glgfx_bitmap_attr_bytesperrow:      *storage = formats[bm->format].size * bm->width;      break;          case glgfx_bitmap_attr_locked:      *storage = bm->locked;      break;          case glgfx_bitmap_attr_mapaddr:      *storage = (intptr_t) bm->locked_memory;      break;          default:      abort();  }  pthread_mutex_unlock(&glgfx_mutex);  return true;}