From 331deca4b4d7d66d16d68c5af1aec0c23a560860 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 13 May 2016 15:45:33 -0700 Subject: [PATCH] Use bitfields to further reduce data structure size --- CHANGELOG.md | 4 ++++ geometry.hpp | 7 +++++-- version.hpp | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59fdd28..899e5ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.11.6 + +* Reduce the size of critical data structures to reduce dynamic memory use + ## 1.11.5 * Let zoom level 0 have just as much extent and buffer as any other zoom diff --git a/geometry.hpp b/geometry.hpp index 0d2b378..35c1399 100644 --- a/geometry.hpp +++ b/geometry.hpp @@ -11,10 +11,13 @@ #define VT_NUMBER 2 #define VT_BOOLEAN 7 +// The bitfield is to make sizeof(draw) be 16 instead of 24 +// at the cost, apparently, of a 0.7% increase in running time +// for packing and unpacking. struct draw { - long long x; - long long y; + long long x : 40; signed char op; + long long y : 40; signed char necessary; draw(int nop, long long nx, long long ny) { diff --git a/version.hpp b/version.hpp index d533879..8a29be8 100644 --- a/version.hpp +++ b/version.hpp @@ -1 +1 @@ -#define VERSION "tippecanoe v1.11.5\n" +#define VERSION "tippecanoe v1.11.6\n"