libebml: fix non strict access build

git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@255 a6f86f6d-0131-4f8e-9e7b-e335508773d5
This commit is contained in:
Steve Lhomme 2010-05-22 18:18:29 +00:00
parent 9c1e708150
commit c9d6482517

View File

@ -135,6 +135,7 @@ extern const EbmlSemanticContext Context_EbmlGlobal;
#define DEFINE_xxx_CLASS_ORPHAN(x,id,idl,name,global) \ #define DEFINE_xxx_CLASS_ORPHAN(x,id,idl,name,global) \
const EbmlId Id_##x (id, idl); \ const EbmlId Id_##x (id, idl); \
const EbmlSemanticContext Context_##x = EbmlSemanticContext(0, NULL, NULL, global, NULL); \ const EbmlSemanticContext Context_##x = EbmlSemanticContext(0, NULL, NULL, global, NULL); \
const EbmlCallbacks x::ClassInfos(x::Create, Id_##x, name, Context_##x); \
#define DEFINE_EBML_CONTEXT(x) DEFINE_xxx_CONTEXT(x,*GetEbmlGlobal_Context) #define DEFINE_EBML_CONTEXT(x) DEFINE_xxx_CONTEXT(x,*GetEbmlGlobal_Context)
#define DEFINE_EBML_MASTER(x,id,idl,parent,name) DEFINE_xxx_MASTER(x,id,idl,parent,name,*GetEbmlGlobal_Context) #define DEFINE_EBML_MASTER(x,id,idl,parent,name) DEFINE_xxx_MASTER(x,id,idl,parent,name,*GetEbmlGlobal_Context)
@ -187,6 +188,7 @@ extern const EbmlSemanticContext Context_EbmlGlobal;
virtual EbmlElement * Clone() const { return new Type(*this); } \ virtual EbmlElement * Clone() const { return new Type(*this); } \
static EbmlElement & Create() {return *(new Type);} \ static EbmlElement & Create() {return *(new Type);} \
static const EbmlId & ClassId(); \ static const EbmlId & ClassId(); \
static const EbmlCallbacks ClassInfos; \
#define EBML_INFO(ref) ref::ClassInfo() #define EBML_INFO(ref) ref::ClassInfo()
@ -222,6 +224,16 @@ extern const EbmlSemanticContext Context_EbmlGlobal;
static EbmlElement & Create() {return *(new Type);} \ static EbmlElement & Create() {return *(new Type);} \
static const EbmlCallbacks ClassInfos; \ static const EbmlCallbacks ClassInfos; \
#define EBML_CONCRETE_DUMMY_CLASS(Type) \
public: \
virtual const EbmlCallbacks & Generic() const {return ClassInfos;} \
virtual operator const EbmlId &(); \
virtual EbmlElement & CreateElement() const {return Create();} \
virtual EbmlElement * Clone() const { return new Type(*this); } \
static EbmlElement & Create() {return *(new Type);} \
static const EbmlCallbacks ClassInfos; \
#define EBML_INFO(ref) ref::ClassInfos #define EBML_INFO(ref) ref::ClassInfos
#define EBML_ID(ref) ref::ClassInfos.GlobalId #define EBML_ID(ref) ref::ClassInfos.GlobalId
#define EBML_CLASS_SEMCONTEXT(ref) Context_##ref #define EBML_CLASS_SEMCONTEXT(ref) Context_##ref