summaryrefslogtreecommitdiff
path: root/upb/handlers-inl.h
diff options
context:
space:
mode:
authorJosh Haberman <jhaberman@gmail.com>2013-05-28 15:26:44 -0700
committerJosh Haberman <jhaberman@gmail.com>2013-05-28 15:26:44 -0700
commit228872a5c68938c56eb9d4ecd2413865b5277fe1 (patch)
treec603c149e99b437fab018877d29289c0a0ff7aeb /upb/handlers-inl.h
parentbada1e94f472e7507a97e7565369841b3d25c9b0 (diff)
Fixes to compile on GCC 4.2, as shipped with XCode.
Diffstat (limited to 'upb/handlers-inl.h')
-rw-r--r--upb/handlers-inl.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/upb/handlers-inl.h b/upb/handlers-inl.h
index 65f21a2..6b46b47 100644
--- a/upb/handlers-inl.h
+++ b/upb/handlers-inl.h
@@ -303,8 +303,8 @@ inline Handlers::StringHandler BindHandler(
template <> \
inline bool Handlers::SetValueHandler<vtype>( \
const FieldDef *f, \
- const typename ValueHandler<typename CanonicalType<vtype>::Type>::H & \
- handler) { \
+ const Handlers::utype ## Handler& handler) { \
+ assert(!handler.registered_); \
handler.registered_ = true; \
return upb_handlers_set##ltype(this, f, handler.handler_, handler.data_, \
handler.cleanup_); \
@@ -394,54 +394,63 @@ inline const MessageDef *Handlers::message_def() const {
}
inline bool Handlers::SetStartMessageHandler(
const Handlers::StartMessageHandler &handler) {
+ assert(!handler.registered_);
handler.registered_ = true;
return upb_handlers_setstartmsg(this, handler.handler_, handler.data_,
handler.cleanup_);
}
inline bool Handlers::SetEndMessageHandler(
const Handlers::EndMessageHandler &handler) {
+ assert(!handler.registered_);
handler.registered_ = true;
return upb_handlers_setendmsg(this, handler.handler_, handler.data_,
handler.cleanup_);
}
inline bool Handlers::SetStartStringHandler(const FieldDef *f,
const StartStringHandler &handler) {
+ assert(!handler.registered_);
handler.registered_ = true;
return upb_handlers_setstartstr(this, f, handler.handler_, handler.data_,
handler.cleanup_);
}
inline bool Handlers::SetEndStringHandler(const FieldDef *f,
const EndFieldHandler &handler) {
+ assert(!handler.registered_);
handler.registered_ = true;
return upb_handlers_setendstr(this, f, handler.handler_, handler.data_,
handler.cleanup_);
}
inline bool Handlers::SetStringHandler(const FieldDef *f,
const StringHandler& handler) {
+ assert(!handler.registered_);
handler.registered_ = true;
return upb_handlers_setstring(this, f, handler.handler_, handler.data_,
handler.cleanup_);
}
inline bool Handlers::SetStartSequenceHandler(
const FieldDef *f, const StartFieldHandler &handler) {
+ assert(!handler.registered_);
handler.registered_ = true;
return upb_handlers_setstartseq(this, f, handler.handler_, handler.data_,
handler.cleanup_);
}
inline bool Handlers::SetStartSubMessageHandler(
const FieldDef *f, const StartFieldHandler &handler) {
+ assert(!handler.registered_);
handler.registered_ = true;
return upb_handlers_setstartsubmsg(this, f, handler.handler_, handler.data_,
handler.cleanup_);
}
inline bool Handlers::SetEndSubMessageHandler(const FieldDef *f,
const EndFieldHandler &handler) {
+ assert(!handler.registered_);
handler.registered_ = true;
return upb_handlers_setendsubmsg(this, f, handler.handler_, handler.data_,
handler.cleanup_);
}
inline bool Handlers::SetEndSequenceHandler(const FieldDef *f,
const EndFieldHandler &handler) {
+ assert(!handler.registered_);
handler.registered_ = true;
return upb_handlers_setendseq(this, f, handler.handler_, handler.data_,
handler.cleanup_);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback