From e02cb2bb8369f2a97461c5d300ffaca247792183 Mon Sep 17 00:00:00 2001 From: Chris Kennelly Date: Fri, 11 Nov 2016 16:10:41 -0800 Subject: Resolve old TODO for StringTypeHandler. StringSpaceUsedExcludingSelf has been part of the lite library since b913cbd. --- src/google/protobuf/repeated_field.h | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) (limited to 'src') diff --git a/src/google/protobuf/repeated_field.h b/src/google/protobuf/repeated_field.h index 0a41495f..6ede0e1a 100644 --- a/src/google/protobuf/repeated_field.h +++ b/src/google/protobuf/repeated_field.h @@ -681,17 +681,7 @@ inline const Message& GenericTypeHandler::default_instance() { return *null; } - -// HACK: If a class is declared as DLL-exported in MSVC, it insists on -// generating copies of all its methods -- even inline ones -- to include -// in the DLL. But SpaceUsed() calls StringSpaceUsedExcludingSelf() which -// isn't in the lite library, therefore the lite library cannot link if -// StringTypeHandler is exported. So, we factor out StringTypeHandlerBase, -// export that, then make StringTypeHandler be a subclass which is NOT -// exported. -// TODO(kenton): Now that StringSpaceUsedExcludingSelf() is in the lite -// library, this can be cleaned up. -class LIBPROTOBUF_EXPORT StringTypeHandlerBase { +class LIBPROTOBUF_EXPORT StringTypeHandler { public: typedef string Type; @@ -718,10 +708,6 @@ class LIBPROTOBUF_EXPORT StringTypeHandlerBase { static inline const Type& default_instance() { return ::google::protobuf::internal::GetEmptyString(); } -}; - -class StringTypeHandler : public StringTypeHandlerBase { - public: static int SpaceUsed(const string& value) { return static_cast(sizeof(value)) + StringSpaceUsedExcludingSelf(value); } -- cgit v1.2.3