comparison osx/include/capnp/orphan.h @ 147:45360b968bf4

Cap'n Proto v0.6 + build for OSX
author Chris Cannam <cannam@all-day-breakfast.com>
date Mon, 22 May 2017 10:01:37 +0100
parents 41e769c91eca
children
comparison
equal deleted inserted replaced
146:206f0eb279b8 147:45360b968bf4
305 return _::OrphanGetImpl<T>::applyReader(builder); 305 return _::OrphanGetImpl<T>::applyReader(builder);
306 } 306 }
307 307
308 template <typename T> 308 template <typename T>
309 inline void Orphan<T>::truncate(uint size) { 309 inline void Orphan<T>::truncate(uint size) {
310 _::OrphanGetImpl<ListElementType<T>>::truncateListOf(builder, size * ELEMENTS); 310 _::OrphanGetImpl<ListElementType<T>>::truncateListOf(builder, bounded(size) * ELEMENTS);
311 } 311 }
312 312
313 template <> 313 template <>
314 inline void Orphan<Text>::truncate(uint size) { 314 inline void Orphan<Text>::truncate(uint size) {
315 builder.truncateText(size * ELEMENTS); 315 builder.truncateText(bounded(size) * ELEMENTS);
316 } 316 }
317 317
318 template <> 318 template <>
319 inline void Orphan<Data>::truncate(uint size) { 319 inline void Orphan<Data>::truncate(uint size) {
320 builder.truncate(size * ELEMENTS, ElementSize::BYTE); 320 builder.truncate(bounded(size) * ELEMENTS, ElementSize::BYTE);
321 } 321 }
322 322
323 template <typename T> 323 template <typename T>
324 struct Orphanage::GetInnerBuilder<T, Kind::STRUCT> { 324 struct Orphanage::GetInnerBuilder<T, Kind::STRUCT> {
325 static inline _::StructBuilder apply(typename T::Builder& t) { 325 static inline _::StructBuilder apply(typename T::Builder& t) {
348 template <typename T, Kind k> 348 template <typename T, Kind k>
349 struct Orphanage::NewOrphanListImpl<List<T, k>> { 349 struct Orphanage::NewOrphanListImpl<List<T, k>> {
350 static inline _::OrphanBuilder apply( 350 static inline _::OrphanBuilder apply(
351 _::BuilderArena* arena, _::CapTableBuilder* capTable, uint size) { 351 _::BuilderArena* arena, _::CapTableBuilder* capTable, uint size) {
352 return _::OrphanBuilder::initList( 352 return _::OrphanBuilder::initList(
353 arena, capTable, size * ELEMENTS, _::ElementSizeForType<T>::value); 353 arena, capTable, bounded(size) * ELEMENTS, _::ElementSizeForType<T>::value);
354 } 354 }
355 }; 355 };
356 356
357 template <typename T> 357 template <typename T>
358 struct Orphanage::NewOrphanListImpl<List<T, Kind::STRUCT>> { 358 struct Orphanage::NewOrphanListImpl<List<T, Kind::STRUCT>> {
359 static inline _::OrphanBuilder apply( 359 static inline _::OrphanBuilder apply(
360 _::BuilderArena* arena, _::CapTableBuilder* capTable, uint size) { 360 _::BuilderArena* arena, _::CapTableBuilder* capTable, uint size) {
361 return _::OrphanBuilder::initStructList( 361 return _::OrphanBuilder::initStructList(
362 arena, capTable, size * ELEMENTS, _::structSize<T>()); 362 arena, capTable, bounded(size) * ELEMENTS, _::structSize<T>());
363 } 363 }
364 }; 364 };
365 365
366 template <> 366 template <>
367 struct Orphanage::NewOrphanListImpl<Text> { 367 struct Orphanage::NewOrphanListImpl<Text> {
368 static inline _::OrphanBuilder apply( 368 static inline _::OrphanBuilder apply(
369 _::BuilderArena* arena, _::CapTableBuilder* capTable, uint size) { 369 _::BuilderArena* arena, _::CapTableBuilder* capTable, uint size) {
370 return _::OrphanBuilder::initText(arena, capTable, size * BYTES); 370 return _::OrphanBuilder::initText(arena, capTable, bounded(size) * BYTES);
371 } 371 }
372 }; 372 };
373 373
374 template <> 374 template <>
375 struct Orphanage::NewOrphanListImpl<Data> { 375 struct Orphanage::NewOrphanListImpl<Data> {
376 static inline _::OrphanBuilder apply( 376 static inline _::OrphanBuilder apply(
377 _::BuilderArena* arena, _::CapTableBuilder* capTable, uint size) { 377 _::BuilderArena* arena, _::CapTableBuilder* capTable, uint size) {
378 return _::OrphanBuilder::initData(arena, capTable, size * BYTES); 378 return _::OrphanBuilder::initData(arena, capTable, bounded(size) * BYTES);
379 } 379 }
380 }; 380 };
381 381
382 template <typename RootType> 382 template <typename RootType>
383 Orphan<RootType> Orphanage::newOrphan(uint size) const { 383 Orphan<RootType> Orphanage::newOrphan(uint size) const {