summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartijn Otto <martijn.otto@copernica.com>2014-02-17 16:38:58 +0100
committerMartijn Otto <martijn.otto@copernica.com>2014-02-17 16:38:58 +0100
commitff3c75d116f3764253b727b3d8e8106710c22628 (patch)
treefeb7cdeac1c3662caa498fae20f5c9ea5a335000
parentca595b1d7aa8ed4a482b8a5ea598ecc1a2636083 (diff)
Removed unnecessary function declareConst and made the declare function for memberinfo descendants override
-rw-r--r--src/boolmember.h24
-rw-r--r--src/doublemember.h25
-rw-r--r--src/longmember.h24
-rw-r--r--src/member.cpp5
-rw-r--r--src/memberinfo.h22
-rw-r--r--src/nullmember.h24
-rw-r--r--src/stringmember.h24
7 files changed, 32 insertions, 116 deletions
diff --git a/src/boolmember.h b/src/boolmember.h
index 84aa4e9..d83a3cb 100644
--- a/src/boolmember.h
+++ b/src/boolmember.h
@@ -49,28 +49,14 @@ public:
* @param size Size of the name
* @param flags Additional flags
*/
- virtual void declare(struct _zend_class_entry *entry, const char *name, int size, int flags)
- {
-#if PHP_VERSION_ID >= 50400
- zend_declare_property_bool(entry, name, size, _value, flags);
-#else
- zend_declare_property_bool(entry, (char *) name, size, _value, flags);
-#endif
- }
-
- /**
- * Virtual method to declare the class constant
- * @param entry Class entry
- * @param name Name of the member
- * @param size Size of the name
- * @param flags Additional flags
- */
- virtual void declareConst(struct _zend_class_entry *entry, const char *name, int size)
+ virtual void declare(struct _zend_class_entry *entry, const char *name, int size, int flags) override
{
#if PHP_VERSION_ID >= 50400
- zend_declare_class_constant_bool(entry, name, size, _value);
+ if (flags == constMember) zend_declare_property_bool(entry, name, size, _value, flags);
+ else zend_declare_class_constant_bool(entry, name, size, _value);
#else
- zend_declare_class_constant_bool(entry, (char *) name, size, _value);
+ if (flags == constMember) zend_declare_property_bool(entry, (char *) name, size, _value, flags);
+ else zend_declare_class_constant_bool(entry, (char *) name, size, _value);
#endif
}
};
diff --git a/src/doublemember.h b/src/doublemember.h
index 7c5e431..5a5e13f 100644
--- a/src/doublemember.h
+++ b/src/doublemember.h
@@ -49,31 +49,16 @@ public:
* @param size Size of the name
* @param flags Additional flags
*/
- virtual void declare(struct _zend_class_entry *entry, const char *name, int size, int flags)
+ virtual void declare(struct _zend_class_entry *entry, const char *name, int size, int flags) override
{
#if PHP_VERSION_ID >= 50400
- zend_declare_property_double(entry, name, size, _value, flags);
+ if (flags == constMember) zend_declare_property_double(entry, name, size, _value, flags);
+ else zend_declare_class_constant_double(entry, name, size, _value);
#else
- zend_declare_property_double(entry, (char *)name, size, _value, flags);
+ if (flags == constMember) zend_declare_property_double(entry, (char *)name, size, _value, flags);
+ else zend_declare_class_constant_double(entry, (char *)name, size, _value);
#endif
}
-
- /**
- * Virtual method to declare the class constant
- * @param entry Class entry
- * @param name Name of the member
- * @param size Size of the name
- * @param flags Additional flags
- */
- virtual void declareConst(struct _zend_class_entry *entry, const char *name, int size)
- {
-#if PHP_VERSION_ID >= 50400
- zend_declare_class_constant_double(entry, name, size, _value);
-#else
- zend_declare_class_constant_double(entry, (char *)name, size, _value);
-#endif
- }
-
};
/**
diff --git a/src/longmember.h b/src/longmember.h
index 4adf59b..ff4ccb3 100644
--- a/src/longmember.h
+++ b/src/longmember.h
@@ -49,28 +49,14 @@ public:
* @param size Size of the name
* @param flags Additional flags
*/
- virtual void declare(struct _zend_class_entry *entry, const char *name, int size, int flags)
+ virtual void declare(struct _zend_class_entry *entry, const char *name, int size, int flags) override
{
#if PHP_VERSION_ID >= 50400
- zend_declare_property_long(entry, name, size, _value, flags);
+ if (flags == constMember) zend_declare_property_long(entry, name, size, _value, flags);
+ else zend_declare_class_constant_long(entry, name, size, _value);
#else
- zend_declare_property_long(entry, (char *) name, size, _value, flags);
-#endif
- }
-
- /**
- * Virtual method to declare the class constant
- * @param entry Class entry
- * @param name Name of the member
- * @param size Size of the name
- * @param flags Additional flags
- */
- virtual void declareConst(struct _zend_class_entry *entry, const char *name, int size)
- {
-#if PHP_VERSION_ID >= 50400
- zend_declare_class_constant_long(entry, name, size, _value);
-#else
- zend_declare_class_constant_long(entry, (char *) name, size, _value);
+ if (flags == constMember) zend_declare_property_long(entry, (char *) name, size, _value, flags);
+ else zend_declare_class_constant_long(entry, (char *) name, size, _value);
#endif
}
};
diff --git a/src/member.cpp b/src/member.cpp
index 31e7d8d..85990cc 100644
--- a/src/member.cpp
+++ b/src/member.cpp
@@ -203,10 +203,7 @@ bool Member::isMethod()
void Member::declare(struct _zend_class_entry *entry)
{
// let the info object handle stuff
- if(_flags == constMember)
- _info->declareConst(entry, _name.c_str(), _name.size() TSRMLS_CC);
- else
- _info->declare(entry, _name.c_str(), _name.size(), _flags TSRMLS_CC);
+ _info->declare(entry, _name.c_str(), _name.size(), _flags TSRMLS_CC);
}
/**
diff --git a/src/memberinfo.h b/src/memberinfo.h
index 1c4b59d..935ad23 100644
--- a/src/memberinfo.h
+++ b/src/memberinfo.h
@@ -23,37 +23,37 @@ private:
* @var int
*/
int _refcount;
-
+
public:
/**
* Constructor
*/
MemberInfo() : _refcount(1) {}
-
+
/**
* Virtual destructor
*/
virtual ~MemberInfo() {}
-
+
/**
* Retrieve refcount
* @return int
*/
int refcount() { return _refcount; }
-
+
/**
* Refcount after making a change
* @param change
* @return integer
*/
int refcount(int change) { return _refcount += change; }
-
+
/**
* Is this a property member
* @return bool
*/
virtual bool isProperty() { return false; }
-
+
/**
* Is this a method member
* @return bool
@@ -70,22 +70,12 @@ public:
virtual void declare(struct _zend_class_entry *entry, const char *name, int size, int flags) {};
/**
- * Virtual method to declare the constant property
- * @param entry Class entry
- * @param name Name of the member
- * @param size Size of the name
- * @param flags Additional flags
- */
- virtual void declareConst(struct _zend_class_entry *entry, const char *name, int size) {};
-
- /**
* Fill a function entry object
* @param entry Function entry
* @param classname Name of the class
* @param flags Is this a public method?
*/
virtual void fill(struct _zend_function_entry *entry, const char *classname, int flags) {};
-
};
/**
diff --git a/src/nullmember.h b/src/nullmember.h
index e5fdd62..54285f0 100644
--- a/src/nullmember.h
+++ b/src/nullmember.h
@@ -41,30 +41,16 @@ public:
* @param size Size of the name
* @param flags Additional flags
*/
- virtual void declare(struct _zend_class_entry *entry, const char *name, int size, int flags)
+ virtual void declare(struct _zend_class_entry *entry, const char *name, int size, int flags) override
{
#if PHP_VERSION_ID >= 50400
- zend_declare_property_null(entry, name, size, flags);
+ if (flags == constMember) zend_declare_property_null(entry, name, size, flags);
+ else zend_declare_class_constant_null(entry, name, size);
#else
- zend_declare_property_null(entry, (char *) name, size, flags);
+ if (flags == constMember) zend_declare_property_null(entry, (char *) name, size, flags);
+ else zend_declare_class_constant_null(entry, (char *) name, size);
#endif
}
-
- /**
- * Virtual method to declare the class constant
- * @param entry Class entry
- * @param name Name of the member
- * @param size Size of the name
- * @param flags Additional flags
- */
- virtual void declareConst(struct _zend_class_entry *entry, const char *name, int size)
- {
-#if PHP_VERSION_ID >= 50400
- zend_declare_class_constant_null(entry, name, size);
-#else
- zend_declare_class_constant_null(entry, (char *) name, size);
-#endif
- };
};
/**
diff --git a/src/stringmember.h b/src/stringmember.h
index d6ac6ea..8f0a1e9 100644
--- a/src/stringmember.h
+++ b/src/stringmember.h
@@ -56,28 +56,14 @@ public:
* @param size Size of the name
* @param flags Additional flags
*/
- virtual void declare(struct _zend_class_entry *entry, const char *name, int size, int flags)
- {
-#if PHP_VERSION_ID >= 50400
- zend_declare_property_stringl(entry, name, size, _value.c_str(), _value.size(), flags);
-#else
- zend_declare_property_stringl(entry, (char*) name, size, (char *) _value.c_str(), _value.size(), flags);
-#endif
- }
-
- /**
- * Virtual method to declare the class constant
- * @param entry Class entry
- * @param name Name of the member
- * @param size Size of the name
- * @param flags Additional flags
- */
- virtual void declareConst(struct _zend_class_entry *entry, const char *name, int size)
+ virtual void declare(struct _zend_class_entry *entry, const char *name, int size, int flags) override
{
#if PHP_VERSION_ID >= 50400
- zend_declare_class_constant_stringl(entry, name, size, _value.c_str(), _value.size());
+ if (flags == constMember) zend_declare_class_constant_stringl(entry, name, size, _value.c_str(), _value.size());
+ else zend_declare_property_stringl(entry, name, size, _value.c_str(), _value.size(), flags);
#else
- zend_declare_class_constant_stringl(entry, (char*) name, size, (char *) _value.c_str(), _value.size());
+ if (flags == constMember) zend_declare_property_stringl(entry, (char*) name, size, (char *) _value.c_str(), _value.size(), flags);
+ else zend_declare_class_constant_stringl(entry, (char*) name, size, (char *) _value.c_str(), _value.size());
#endif
}
};