comparison win32-mingw/include/capnp/pointer-helpers.h @ 64:eccd51b72864

Update Win32 capnp builds to v0.6
author Chris Cannam
date Tue, 23 May 2017 09:16:54 +0100
parents 37d53a7e8262
children
comparison
equal deleted inserted replaced
63:0f2d93caa50c 64:eccd51b72864
111 template <typename T> 111 template <typename T>
112 struct PointerHelpers<T, Kind::BLOB> { 112 struct PointerHelpers<T, Kind::BLOB> {
113 static inline typename T::Reader get(PointerReader reader, 113 static inline typename T::Reader get(PointerReader reader,
114 const void* defaultValue = nullptr, 114 const void* defaultValue = nullptr,
115 uint defaultBytes = 0) { 115 uint defaultBytes = 0) {
116 return reader.getBlob<T>(defaultValue, defaultBytes * BYTES); 116 return reader.getBlob<T>(defaultValue, bounded(defaultBytes) * BYTES);
117 } 117 }
118 static inline typename T::Builder get(PointerBuilder builder, 118 static inline typename T::Builder get(PointerBuilder builder,
119 const void* defaultValue = nullptr, 119 const void* defaultValue = nullptr,
120 uint defaultBytes = 0) { 120 uint defaultBytes = 0) {
121 return builder.getBlob<T>(defaultValue, defaultBytes * BYTES); 121 return builder.getBlob<T>(defaultValue, bounded(defaultBytes) * BYTES);
122 } 122 }
123 static inline void set(PointerBuilder builder, typename T::Reader value) { 123 static inline void set(PointerBuilder builder, typename T::Reader value) {
124 builder.setBlob<T>(value); 124 builder.setBlob<T>(value);
125 } 125 }
126 static inline void setCanonical(PointerBuilder builder, typename T::Reader value) { 126 static inline void setCanonical(PointerBuilder builder, typename T::Reader value) {
127 builder.setBlob<T>(value); 127 builder.setBlob<T>(value);
128 } 128 }
129 static inline typename T::Builder init(PointerBuilder builder, uint size) { 129 static inline typename T::Builder init(PointerBuilder builder, uint size) {
130 return builder.initBlob<T>(size * BYTES); 130 return builder.initBlob<T>(bounded(size) * BYTES);
131 } 131 }
132 static inline void adopt(PointerBuilder builder, Orphan<T>&& value) { 132 static inline void adopt(PointerBuilder builder, Orphan<T>&& value) {
133 builder.adopt(kj::mv(value.builder)); 133 builder.adopt(kj::mv(value.builder));
134 } 134 }
135 static inline Orphan<T> disown(PointerBuilder builder) { 135 static inline Orphan<T> disown(PointerBuilder builder) {