Changes:
- $Id: access.c 2074 2005-03-25 12:23:30Z edwin $
+ $Id: access.c 2096 2005-03-27 18:57:00Z edwin $
*/
{
ACCESS_ASSERT(referer);
ACCESS_ASSERT(cls);
+
+ /* XXX specially check access to array classes? (vmspec 5.3.3) */
/* public classes are always accessible */
if ((cls->flags & ACC_PUBLIC) != 0)
/* {the member is protected and declarer is in another package} */
/* a necessary condition for access is that referer is a subclass of declarer */
+ ACCESS_ASSERT(referer->linked && declarer->linked);
if (builtin_isanysubclass(referer,declarer))
return true;
Changes:
- $Id: access.h 2074 2005-03-25 12:23:30Z edwin $
+ $Id: access.h 2096 2005-03-27 18:57:00Z edwin $
*/
/* macros *********************************************************************/
-#define SAME_PACKAGE(a,b) \
- ((a)->packagename == (b)->packagename)
+#define SAME_PACKAGE(a,b) \
+ ((a)->classloader == (b)->classloader && \
+ (a)->packagename == (b)->packagename)
/* function prototypes ********************************************************/