Skip to content

Commit 9cabd63

Browse files
authored
Merge pull request Tencent#870 from StilesCrisis/null-handler-fix
Null handler fix
2 parents 97e2f7f + 4643104 commit 9cabd63

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

include/rapidjson/schema.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1928,7 +1928,7 @@ RAPIDJSON_MULTILINEMACRO_END
19281928
const Context& CurrentContext() const { return *schemaStack_.template Top<Context>(); }
19291929

19301930
OutputHandler& CreateNullHandler() {
1931-
return *(nullHandler_ = static_cast<OutputHandler*>(GetStateAllocator().Malloc(sizeof(OutputHandler))));
1931+
return *(nullHandler_ = new (GetStateAllocator().Malloc(sizeof(OutputHandler))) OutputHandler);
19321932
}
19331933

19341934
static const size_t kDefaultSchemaStackCapacity = 1024;

test/unittest/schematest.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1281,6 +1281,12 @@ TEST(SchemaValidatingWriter, Simple) {
12811281
EXPECT_TRUE(validator.GetInvalidDocumentPointer() == SchemaDocument::PointerType(""));
12821282
}
12831283

1284+
TEST(Schema, Issue848) {
1285+
rapidjson::Document d;
1286+
rapidjson::SchemaDocument s(d);
1287+
rapidjson::GenericSchemaValidator<rapidjson::SchemaDocument, rapidjson::Document> v(s);
1288+
}
1289+
12841290
#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
12851291

12861292
static SchemaDocument ReturnSchemaDocument() {

0 commit comments

Comments
 (0)