Skip to content

Commit c51c1c2

Browse files
Fixups in object unpack descriptor.
1 parent 02651af commit c51c1c2

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

Diff for: object.h

+4-3
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,8 @@ unpack(classdesc::unpack_t& b, const classdesc::string& d, classdesc::shared_ptr
124124
b>>t;
125125
if (t)
126126
{
127-
a.reset(classdesc::object::create(t-1));
127+
std::shared_ptr<classdesc::object> tmp(classdesc::object::create(t-1));
128+
a=std::dynamic_pointer_cast<T>(std::move(tmp));
128129
a->unpack(b);
129130
}
130131
}
@@ -138,9 +139,9 @@ unpack(classdesc::unpack_t& b, const classdesc::string& d, const classdesc::shar
138139
if (t)
139140
{
140141
#if defined(__cplusplus) && __cplusplus>=201103L
141-
std::unique_ptr<T> a(classdesc::object::create(t-1));
142+
std::unique_ptr<classdesc::object> a(classdesc::object::create(t-1));
142143
#else
143-
std::auto_ptr<T> a(classdesc::object::create(t-1));
144+
std::auto_ptr<classdesc::object> a(classdesc::object::create(t-1));
144145
#endif
145146
a->unpack(b);
146147
}

0 commit comments

Comments
 (0)