Bug #73249 [Opn->Ver]: <visibility error> for Exception __construct

From: Date: Wed, 05 Oct 2016 08:20:39 +0000
Subject: Bug #73249 [Opn->Ver]: <visibility error> for Exception __construct
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-204465@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=73249&edit=1 ID: 73249 Updated by: cmb@php.net Reported by: remi@php.net Summary: <visibility error> for Exception __construct -Status: Open +Status: Verified Type: Bug Package: *PDF functions Operating System: irrevelant PHP Version: 7.0.11 -Assigned To: +Assigned To: rjs Block user comment: N Private report: N New Comment: The problem is the following code in pdf.c: pdflib_exception_class->constructor->common.fn_flags |= ZEND_ACC_PROTECTED; This has two issues: * just adding the protected flags without removing the public flag creates an unexpected bitmask, because the visibility flags are supposed to be exclusive * this changes the flags of the inherited class[1] Rainer, please have a look at this issue. [1] <https://github.com/php/php-src/commit/a783891e> Previous Comments: ------------------------------------------------------------------------ [2016-10-05 06:58:54] remi@php.net Reaffecting to PDF as the error only appear when this extension is installed With pdf => issue $ php -n -d extension=pdf.so -d extension=json.so -d extension=couchbase.so --re couchbase | grep __cons Method [ <internal:Core, inherits Exception, ctor> <visibility error> method __construct ] { Without pdf => no issue $ php -n -d extension=json.so -d extension=couchbase.so --re couchbase | grep __cons Method [ <internal:Core, inherits Exception, ctor> public method __construct ] { ------------------------------------------------------------------------ [2016-10-05 05:35:07] remi@php.net Various extensions are affected: - couchbase - leveldb - mongo - pdflib - protocolbuffers - stomp - strict - varnish - xmldiff - yaf - yar - zmq ... ------------------------------------------------------------------------ [2016-10-05 05:32:03] remi@php.net Description: ------------ Reflection of some extension start reporting <visibility error> Example: Class [ <internal:couchbase> class CouchbaseException extends Exception implements Throwable ] { Method [ <internal:Core, inherits Exception, ctor> <visibility error> method __construct ] { Reported as https://issues.couchbase.com/browse/PCBC-437 But this class simply extends core Exception. Test script: --------------- zend_class_entry cbe; INIT_CLASS_ENTRY(cbe, "CouchbaseException", NULL); cb_exception_ce = zap_zend_register_internal_class_ex(&cbe, zend_exception_get_default()); Expected result: ---------------- Method [ <internal:Core, inherits Exception, ctor> public method __construct ] { Actual result: -------------- Method [ <internal:Core, inherits Exception, ctor> <visibility error> method __construct ] { ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=73249&edit=1

« previous php.bugs (#204465) next »