From: Samuele P. <pe...@in...> - 2000-10-19 22:23:12
|
I apologize, I have written the last part of the last mail too quickly. The (pseudo)code presented gives the idea, but it's a little bit buggy: > mapping: > we need the helper: > > fromhier(jclass,classloader): > java11: > return jclass.classLoader == classloader or jclass.classLoader == None > java2: > try: > cl=jclass.classLoader > except <security>: > return 1 !special case cl is the java system classloader (null): + if cl==None: + return 1 > if classloader == '<secured>': > return 0 !We don't need that. > try: > while 1: > if cl == classloader: > return 1 + if classloader==None: + return 0 > classloader = classloader.parent > except <security>: > pass > return 0 > sys.classLoader is sys.classLoader > rtloader is the loader of Python runtime (Py.class.getClassLoader(), > '<secured>' if one cannot get it for security reasons in java2) !Every class can ask for its own classloader no security problem at this level :) > > the_mapping(jclass): > if fromhier(jclass,rtloader) or fromhier(jclass,sys.classLoader): > return None > if jclass.classLoader is a load-set-classloader: > return it > return 'cannot incur in lazy loading' regards, Samuele |