Commit 863afbe2 authored by Kenton Varda's avatar Kenton Varda

Merge branch

parents 70a7bcb7 a2b0c058
......@@ -119,10 +119,10 @@ struct WirePointer {
// -----------------------------------------------------------------
// Part of pointer that depends on the kind.
union {
uint32_t upper32Bits;
struct {
// Note: Originally StructRef, ListRef, and FarRef were unnamed types, but this somehow
// tickled a bug in GCC:
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58192
struct StructRef {
WireValue<WordCount16> dataSize;
WireValue<WirePointerCount16> ptrCount;
......@@ -138,10 +138,9 @@ struct WirePointer {
dataSize.set(size.data);
ptrCount.set(size.pointers);
}
} structRef;
// Also covers capabilities.
};
struct {
struct ListRef {
WireValue<uint32_t> elementSizeAndCount;
KJ_ALWAYS_INLINE(FieldSize elementSize() const) {
......@@ -164,15 +163,25 @@ struct WirePointer {
elementSizeAndCount.set(((wc / WORDS) << 3) |
static_cast<int>(FieldSize::INLINE_COMPOSITE));
}
} listRef;
};
struct {
struct FarRef {
WireValue<SegmentId> segmentId;
KJ_ALWAYS_INLINE(void set(SegmentId si)) {
segmentId.set(si);
}
} farRef;
};
union {
uint32_t upper32Bits;
StructRef structRef;
// Also covers capabilities.
ListRef listRef;
FarRef farRef;
};
KJ_ALWAYS_INLINE(bool isNull() const) {
......
---
layout: post
title: "Cap'n Proto v0.2.1: Minor bug fixes"
author: kentonv
---
Cap'n Proto was just bumped to v0.2.1. This release contains a couple bug fixes, including
a work-around for [a GCC bug](http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58192). If you were
observing any odd memory corruption or crashes in 0.2.0 -- especially if you are compiling with
GCC with optimization enabled but without `-DNDEBUG` -- you should upgrade.
......@@ -94,9 +94,9 @@ Hopefully, Xcode 5.0 will be released soon with a newer Clang, making this extra
You may download and install the release version of Cap'n Proto like so:
<pre><code>curl -O <a href="http://capnproto.org/capnproto-c++-0.2.0.tar.gz">http://capnproto.org/capnproto-c++-0.2.0.tar.gz</a>
tar zxf capnproto-c++-0.2.0.tar.gz
cd capnproto-c++-0.2.0
<pre><code>curl -O <a href="http://capnproto.org/capnproto-c++-0.2.1.tar.gz">http://capnproto.org/capnproto-c++-0.2.1.tar.gz</a>
tar zxf capnproto-c++-0.2.1.tar.gz
cd capnproto-c++-0.2.1
./configure
make -j6 check
sudo make install</code></pre>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment