Replace uses of deprecated std::auto_ptr with std::unique_ptr.
Change-Id: I8d67fc6f3ce168f4d8b6330549f766dbf5374d61
diff --git a/Android.mk b/Android.mk
index 8149a08..b46ba10 100644
--- a/Android.mk
+++ b/Android.mk
@@ -3,7 +3,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE:= libwebm
LOCAL_CPPFLAGS:=-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS
-LOCAL_CPPFLAGS+=-D__STDC_LIMIT_MACROS -Wno-extern-c-compat
+LOCAL_CPPFLAGS+=-D__STDC_LIMIT_MACROS -std=c++11
LOCAL_C_INCLUDES:= $(LOCAL_PATH)
LOCAL_EXPORT_C_INCLUDES:= $(LOCAL_PATH)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 05da869..ba42a7d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,9 +21,7 @@
option(ENABLE_WERROR "Enable warnings as errors." OFF)
option(ENABLE_WEBM_PARSER "Enables new parser API." OFF)
-if (ENABLE_TESTS OR ENABLE_WEBMTS OR ENABLE_WEBMINFO OR ENABLE_WEBM_PARSER)
- require_cxx_flag_nomsvc("-std=c++11")
-endif ()
+require_cxx_flag_nomsvc("-std=c++11")
add_cxx_preproc_definition("__STDC_CONSTANT_MACROS")
add_cxx_preproc_definition("__STDC_FORMAT_MACROS")
diff --git a/Makefile.unix b/Makefile.unix
index 09e24f0..0430d17 100644
--- a/Makefile.unix
+++ b/Makefile.unix
@@ -2,7 +2,7 @@
DEFINES := -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS
DEFINES += -D__STDC_LIMIT_MACROS
INCLUDES := -I.
-CXXFLAGS := -W -Wall -g
+CXXFLAGS := -W -Wall -g -std=c++11
ALL_CXXFLAGS := -MMD -MP $(DEFINES) $(INCLUDES) $(CXXFLAGS)
LIBWEBMA := libwebm.a
LIBWEBMSO := libwebm.so
diff --git a/common/hdr_util.cc b/common/hdr_util.cc
index e1618ce..916f717 100644
--- a/common/hdr_util.cc
+++ b/common/hdr_util.cc
@@ -36,10 +36,10 @@
if (MasteringMetadataValuePresent(parser_mm.luminance_min))
muxer_mm->set_luminance_min(parser_mm.luminance_min);
- PrimaryChromaticityPtr r_ptr(NULL);
- PrimaryChromaticityPtr g_ptr(NULL);
- PrimaryChromaticityPtr b_ptr(NULL);
- PrimaryChromaticityPtr wp_ptr(NULL);
+ PrimaryChromaticityPtr r_ptr(nullptr);
+ PrimaryChromaticityPtr g_ptr(nullptr);
+ PrimaryChromaticityPtr b_ptr(nullptr);
+ PrimaryChromaticityPtr wp_ptr(nullptr);
if (parser_mm.r) {
if (!CopyPrimaryChromaticity(*parser_mm.r, &r_ptr))
diff --git a/common/hdr_util.h b/common/hdr_util.h
index c414aaf..78e2eeb 100644
--- a/common/hdr_util.h
+++ b/common/hdr_util.h
@@ -47,19 +47,7 @@
int chroma_subsampling;
};
-// disable deprecation warnings for auto_ptr
-#if defined(__GNUC__)
-#if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-#endif
-typedef std::auto_ptr<mkvmuxer::PrimaryChromaticity> PrimaryChromaticityPtr;
-#if defined(__GNUC__)
-#if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)
-#pragma GCC diagnostic pop
-#endif
-#endif
+typedef std::unique_ptr<mkvmuxer::PrimaryChromaticity> PrimaryChromaticityPtr;
bool CopyPrimaryChromaticity(const mkvparser::PrimaryChromaticity& parser_pc,
PrimaryChromaticityPtr* muxer_pc);
diff --git a/mkvmuxer/mkvmuxer.cc b/mkvmuxer/mkvmuxer.cc
index 71f026a..481771d 100644
--- a/mkvmuxer/mkvmuxer.cc
+++ b/mkvmuxer/mkvmuxer.cc
@@ -26,13 +26,6 @@
#include "mkvmuxer/mkvwriter.h"
#include "mkvparser/mkvparser.h"
-// disable deprecation warnings for auto_ptr
-#if defined(__GNUC__)
-#if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-#endif
-
namespace mkvmuxer {
const float PrimaryChromaticity::kChromaticityMin = 0.0f;
@@ -76,7 +69,7 @@
return true;
}
-typedef std::auto_ptr<PrimaryChromaticity> PrimaryChromaticityPtr;
+typedef std::unique_ptr<PrimaryChromaticity> PrimaryChromaticityPtr;
bool CopyChromaticity(const PrimaryChromaticity* src,
PrimaryChromaticityPtr* dst) {
if (!dst)
@@ -1061,22 +1054,22 @@
bool MasteringMetadata::SetChromaticity(
const PrimaryChromaticity* r, const PrimaryChromaticity* g,
const PrimaryChromaticity* b, const PrimaryChromaticity* white_point) {
- PrimaryChromaticityPtr r_ptr(NULL);
+ PrimaryChromaticityPtr r_ptr(nullptr);
if (r) {
if (!CopyChromaticity(r, &r_ptr))
return false;
}
- PrimaryChromaticityPtr g_ptr(NULL);
+ PrimaryChromaticityPtr g_ptr(nullptr);
if (g) {
if (!CopyChromaticity(g, &g_ptr))
return false;
}
- PrimaryChromaticityPtr b_ptr(NULL);
+ PrimaryChromaticityPtr b_ptr(nullptr);
if (b) {
if (!CopyChromaticity(b, &b_ptr))
return false;
}
- PrimaryChromaticityPtr wp_ptr(NULL);
+ PrimaryChromaticityPtr wp_ptr(nullptr);
if (white_point) {
if (!CopyChromaticity(white_point, &wp_ptr))
return false;
@@ -1242,7 +1235,7 @@
}
bool Colour::SetMasteringMetadata(const MasteringMetadata& mastering_metadata) {
- std::auto_ptr<MasteringMetadata> mm_ptr(new MasteringMetadata());
+ std::unique_ptr<MasteringMetadata> mm_ptr(new MasteringMetadata());
if (!mm_ptr.get())
return false;
@@ -1550,7 +1543,7 @@
}
bool VideoTrack::SetColour(const Colour& colour) {
- std::auto_ptr<Colour> colour_ptr(new Colour());
+ std::unique_ptr<Colour> colour_ptr(new Colour());
if (!colour_ptr.get())
return false;
@@ -1578,7 +1571,7 @@
}
bool VideoTrack::SetProjection(const Projection& projection) {
- std::auto_ptr<Projection> projection_ptr(new Projection());
+ std::unique_ptr<Projection> projection_ptr(new Projection());
if (!projection_ptr.get())
return false;
diff --git a/mkvmuxer_sample.cc b/mkvmuxer_sample.cc
index e534582..6261804 100644
--- a/mkvmuxer_sample.cc
+++ b/mkvmuxer_sample.cc
@@ -29,11 +29,6 @@
#include "sample_muxer_metadata.h"
-// disable deprecation warnings for auto_ptr
-#if defined(__GNUC__) && __GNUC__ >= 5
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-
namespace {
void Usage() {
@@ -350,7 +345,7 @@
return EXIT_FAILURE;
}
- const std::auto_ptr<mkvparser::Segment> parser_segment(parser_segment_);
+ const std::unique_ptr<mkvparser::Segment> parser_segment(parser_segment_);
ret = parser_segment->Load();
if (ret < 0) {
printf("\n Segment::Load() failed.");
diff --git a/mkvparser/mkvparser.cc b/mkvparser/mkvparser.cc
index d4f8e5e..99131d8 100644
--- a/mkvparser/mkvparser.cc
+++ b/mkvparser/mkvparser.cc
@@ -22,13 +22,6 @@
#include "common/webmids.h"
-// disable deprecation warnings for auto_ptr
-#if defined(__GNUC__)
-#if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-#endif
-
namespace mkvparser {
const float MasteringMetadata::kValueNotPresent = FLT_MAX;
const long long Colour::kValueNotPresent = LLONG_MAX;
@@ -5017,7 +5010,7 @@
if (!reader || *mm)
return false;
- std::auto_ptr<MasteringMetadata> mm_ptr(new MasteringMetadata());
+ std::unique_ptr<MasteringMetadata> mm_ptr(new MasteringMetadata());
if (!mm_ptr.get())
return false;
@@ -5106,7 +5099,7 @@
if (!reader || *colour)
return false;
- std::auto_ptr<Colour> colour_ptr(new Colour());
+ std::unique_ptr<Colour> colour_ptr(new Colour());
if (!colour_ptr.get())
return false;
@@ -5204,7 +5197,7 @@
if (!reader || *projection)
return false;
- std::auto_ptr<Projection> projection_ptr(new Projection());
+ std::unique_ptr<Projection> projection_ptr(new Projection());
if (!projection_ptr.get())
return false;
diff --git a/mkvparser_sample.cc b/mkvparser_sample.cc
index 6f7dc00..f285c3e 100644
--- a/mkvparser_sample.cc
+++ b/mkvparser_sample.cc
@@ -16,13 +16,6 @@
#include "mkvparser/mkvparser.h"
#include "mkvparser/mkvreader.h"
-// disable deprecation warnings for auto_ptr
-#if defined(__GNUC__)
-#if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-#endif
-
namespace {
const wchar_t* utf8towcs(const char* str) {
if (str == NULL)
@@ -115,7 +108,7 @@
return EXIT_FAILURE;
}
- const std::auto_ptr<seg_t> pSegment(pSegment_);
+ const std::unique_ptr<seg_t> pSegment(pSegment_);
ret = pSegment->Load();
if (ret < 0) {
diff --git a/vttdemux.cc b/vttdemux.cc
index 62f987d..186783b 100644
--- a/vttdemux.cc
+++ b/vttdemux.cc
@@ -20,19 +20,12 @@
using std::string;
-// disable deprecation warnings for auto_ptr
-#if defined(__GNUC__)
-#if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-#endif
-
namespace libwebm {
namespace vttdemux {
typedef long long mkvtime_t; // NOLINT
typedef long long mkvpos_t; // NOLINT
-typedef std::auto_ptr<mkvparser::Segment> segment_ptr_t;
+typedef std::unique_ptr<mkvparser::Segment> segment_ptr_t;
// WebVTT metadata tracks have a type (encoded in the CodecID for the track).
// We use |type| to synthesize a filename for the out-of-band WebVTT |file|.
diff --git a/webm_info.cc b/webm_info.cc
index 2a97629..03077e7 100644
--- a/webm_info.cc
+++ b/webm_info.cc
@@ -1190,8 +1190,7 @@
return EXIT_FAILURE;
}
- // TODO(fgalligan): Replace auto_ptr with scoped_ptr.
- std::auto_ptr<mkvparser::MkvReader> reader(
+ std::unique_ptr<mkvparser::MkvReader> reader(
new (std::nothrow) mkvparser::MkvReader()); // NOLINT
if (reader->Open(input.c_str())) {
fprintf(stderr, "Error opening file:%s\n", input.c_str());
@@ -1199,7 +1198,7 @@
}
long long int pos = 0;
- std::auto_ptr<mkvparser::EBMLHeader> ebml_header(
+ std::unique_ptr<mkvparser::EBMLHeader> ebml_header(
new (std::nothrow) mkvparser::EBMLHeader()); // NOLINT
if (ebml_header->Parse(reader.get(), pos) < 0) {
fprintf(stderr, "Error parsing EBML header.\n");
@@ -1217,7 +1216,7 @@
fprintf(stderr, "Segment::CreateInstance() failed.\n");
return EXIT_FAILURE;
}
- std::auto_ptr<mkvparser::Segment> segment(temp_segment);
+ std::unique_ptr<mkvparser::Segment> segment(temp_segment);
if (segment->Load() < 0) {
fprintf(stderr, "Segment::Load() failed.\n");