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:
parent
9c1e708150
commit
c9d6482517
@ -135,6 +135,7 @@ extern const EbmlSemanticContext Context_EbmlGlobal;
|
||||
#define DEFINE_xxx_CLASS_ORPHAN(x,id,idl,name,global) \
|
||||
const EbmlId Id_##x (id, idl); \
|
||||
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_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); } \
|
||||
static EbmlElement & Create() {return *(new Type);} \
|
||||
static const EbmlId & ClassId(); \
|
||||
static const EbmlCallbacks ClassInfos; \
|
||||
|
||||
|
||||
#define EBML_INFO(ref) ref::ClassInfo()
|
||||
@ -222,6 +224,16 @@ extern const EbmlSemanticContext Context_EbmlGlobal;
|
||||
static EbmlElement & Create() {return *(new Type);} \
|
||||
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_ID(ref) ref::ClassInfos.GlobalId
|
||||
#define EBML_CLASS_SEMCONTEXT(ref) Context_##ref
|
||||
|
Loading…
Reference in New Issue
Block a user