Commit Graph

136 Commits

Author SHA1 Message Date
Behdad Esfahbod 693d91cd49 [serialize] Fix offset calculation 2019-04-17 17:59:39 -04:00
Behdad Esfahbod db0c9a1485 [subset] Assert offsets are zero during relocation
If they're not, it's a bug in our subsetting logic somewhere.  So check.
2019-04-17 17:58:13 -04:00
Behdad Esfahbod efbba7ad26 [serializer] Add copy()
Calls obj.copy() or obj.operator=() in that order.
2019-04-17 11:00:08 -04:00
Behdad Esfahbod 7b863142ce [serialize] Make putting breakpoint on out-of-memory easier 2019-04-03 15:48:27 -07:00
Behdad Esfahbod 6215fb8e68 [serialize] Actually reclaim storage from duplicate objects 2019-04-02 23:10:03 -07:00
Behdad Esfahbod 3305a2cad2 [serialize] Port to use object pool
Tested, but feels fragile :(.
2019-04-02 22:58:49 -07:00
Behdad Esfahbod 8e4df1a152 [serialize] Disable packed_map again
Ugh.  Need to think of something else.
2019-04-02 20:20:53 -07:00
Behdad Esfahbod 5b66b033fd [serialize] Fix hb_hashmap_t<> for pointers and use in packed_map 2019-04-02 19:30:22 -07:00
Behdad Esfahbod fc24bb9046 [serialize] Towards maintaining packed_map 2019-04-02 17:49:52 -07:00
Behdad Esfahbod e04518bafc [serialize] Movce empty-object handling earlier 2019-04-02 17:20:04 -07:00
Behdad Esfahbod 5a3de4f4f8 [serialize] Allow offset links that have base offset from the object base
Rarely used, but used, in name table or similar constructs.
2019-04-02 16:53:42 -07:00
Behdad Esfahbod f0ea3ac17b [serialize] Fix linking 2019-04-01 21:36:03 -07:00
Behdad Esfahbod 7c0e2054e0 [serialize] Minor 2019-04-01 21:32:29 -07:00
Behdad Esfahbod abe33c6149 [serialize] Assert stack 2019-04-01 16:56:41 -07:00
Behdad Esfahbod 72e9b2c16c [serialize] Add add_link() to add link 2019-04-01 16:56:41 -07:00
Behdad Esfahbod 74addbecac [serialize] Add default template type to push() 2019-04-01 16:56:41 -07:00
Behdad Esfahbod f3aca6aa26 [serialize] Implement linking
Untested!
2019-03-31 21:37:14 -07:00
Behdad Esfahbod d6005b49b3 [serialize] Start implementing linking 2019-03-30 19:49:56 -07:00
Behdad Esfahbod 313b3057c3 [serializer] Implement dedup! 2019-03-30 19:46:35 -07:00
Behdad Esfahbod b189bbc48f Implement hashing of objects
Should be improved for hb_bytes_t.
2019-03-30 19:41:48 -07:00
Behdad Esfahbod d74dc3ef65 [serialize] Don't insert empty object into tree 2019-03-30 19:26:37 -07:00
Behdad Esfahbod 7fd8228326 [serialize] Towards maintaining hashmap 2019-03-30 19:16:20 -07:00
Behdad Esfahbod f254f45a1e [serialize] Only pack main object if there are other objects
Avoids a memmove for tables that don't use the object packing mechanism.
2019-03-30 19:05:51 -07:00
Behdad Esfahbod 946d446f9b [serialize] Copy both sides of the buffer 2019-03-30 19:03:55 -07:00
Behdad Esfahbod 8512dc565d [serialize] Simplify copy 2019-03-30 19:01:23 -07:00
Behdad Esfahbod 0b1fe7b716 [serializer] Unbreak for now 2019-03-30 18:48:26 -07:00
Behdad Esfahbod 4c4d3c3ed5 [vector] Add some move and forwarding 2019-03-30 18:30:50 -07:00
Behdad Esfahbod 9a19b885f9 [serialize] Flesh out packing 2019-03-30 18:14:30 -07:00
Behdad Esfahbod 6f69c9d26f [serialize] Minor 2019-03-30 18:00:03 -07:00
Behdad Esfahbod a43290192b [serialize] Add packed_map 2019-03-30 17:57:33 -07:00
Behdad Esfahbod bed150bd2e [serialize] Start fleshing out object stack 2019-03-30 17:43:43 -07:00
Behdad Esfahbod 63c3565189 [serialize] Simplify propagate_error() 2019-03-30 17:12:40 -07:00
Behdad Esfahbod dbe9ba6711 [serialize] Add object_t, link_t, and snapshot_t 2019-03-30 17:10:59 -07:00
Behdad Esfahbod 6dcf7c4017 [serialize] Add unused 'tail' 2019-03-30 15:08:39 -07:00
Behdad Esfahbod fe05e48086 [serialize] Add ran_out_of_room 2019-03-30 15:06:25 -07:00
Behdad Esfahbod be66b575fc Move serializer to hb-serialize.hh 2019-03-30 14:53:54 -07:00