Skip to content

Commit

Permalink
Merge pull request google#553 from igorvytyaz/master
Browse files Browse the repository at this point in the history
Making metadata block in DRC files deterministic.
  • Loading branch information
igorvytyaz committed Sep 13, 2019
2 parents 9e4d51b + 5f94dab commit 9976532
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 12 deletions.
2 changes: 2 additions & 0 deletions src/draco/io/obj_encoder.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
#ifndef DRACO_IO_OBJ_ENCODER_H_
#define DRACO_IO_OBJ_ENCODER_H_

#include <unordered_map>

#include "draco/core/encoder_buffer.h"
#include "draco/mesh/mesh.h"

Expand Down
10 changes: 5 additions & 5 deletions src/draco/metadata/metadata.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
#include <cstring>
#include <memory>
#include <string>
#include <unordered_map>
#include <map>
#include <vector>

#include "draco/core/hash_utils.h"
Expand Down Expand Up @@ -150,10 +150,10 @@ class Metadata {
void RemoveEntry(const std::string &name);

int num_entries() const { return static_cast<int>(entries_.size()); }
const std::unordered_map<std::string, EntryValue> &entries() const {
const std::map<std::string, EntryValue> &entries() const {
return entries_;
}
const std::unordered_map<std::string, std::unique_ptr<Metadata>>
const std::map<std::string, std::unique_ptr<Metadata>>
&sub_metadatas() const {
return sub_metadatas_;
}
Expand All @@ -178,8 +178,8 @@ class Metadata {
return itr->second.GetValue(entry_value);
}

std::unordered_map<std::string, EntryValue> entries_;
std::unordered_map<std::string, std::unique_ptr<Metadata>> sub_metadatas_;
std::map<std::string, EntryValue> entries_;
std::map<std::string, std::unique_ptr<Metadata>> sub_metadatas_;

friend struct MetadataHasher;
};
Expand Down
7 changes: 3 additions & 4 deletions src/draco/metadata/metadata_encoder.cc
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ namespace draco {

bool MetadataEncoder::EncodeMetadata(EncoderBuffer *out_buffer,
const Metadata *metadata) {
const std::unordered_map<std::string, EntryValue> &entries =
metadata->entries();
const std::map<std::string, EntryValue> &entries = metadata->entries();
// Encode number of entries.
EncodeVarint(static_cast<uint32_t>(metadata->num_entries()), out_buffer);
// Encode all entries.
Expand All @@ -33,8 +32,8 @@ bool MetadataEncoder::EncodeMetadata(EncoderBuffer *out_buffer,
EncodeVarint(data_size, out_buffer);
out_buffer->Encode(entry_value.data(), data_size);
}
const std::unordered_map<std::string, std::unique_ptr<Metadata>>
&sub_metadatas = metadata->sub_metadatas();
const std::map<std::string, std::unique_ptr<Metadata>> &sub_metadatas =
metadata->sub_metadatas();
// Encode number of sub-metadata
EncodeVarint(static_cast<uint32_t>(sub_metadatas.size()), out_buffer);
// Encode each sub-metadata
Expand Down
6 changes: 3 additions & 3 deletions src/draco/metadata/metadata_encoder_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ class MetadataEncoderTest : public ::testing::Test {
void CheckMetadatasAreEqual(const draco::Metadata &metadata0,
const draco::Metadata &metadata1) {
ASSERT_EQ(metadata0.num_entries(), metadata1.num_entries());
const std::unordered_map<std::string, draco::EntryValue> &entries0 =
const std::map<std::string, draco::EntryValue> &entries0 =
metadata0.entries();
const std::unordered_map<std::string, draco::EntryValue> &entries1 =
const std::map<std::string, draco::EntryValue> &entries1 =
metadata1.entries();
for (const auto &entry : entries0) {
const std::string &entry_name = entry.first;
Expand All @@ -90,7 +90,7 @@ class MetadataEncoderTest : public ::testing::Test {
// Check nested metadata.
ASSERT_EQ(metadata0.sub_metadatas().size(),
metadata1.sub_metadatas().size());
const std::unordered_map<std::string, std::unique_ptr<draco::Metadata>>
const std::map<std::string, std::unique_ptr<draco::Metadata>>
&sub_metadatas0 = metadata0.sub_metadatas();
// Encode each sub-metadata
for (auto &&sub_metadata_entry0 : sub_metadatas0) {
Expand Down

0 comments on commit 9976532

Please sign in to comment.