static long objectID(O o) { if (o == null) ret 0; Map generalMap = vm_generalMap(); if (generalMap == null) fail("Please upgrade JavaX"); synchronized(generalMap) { Map map = cast generalMap.get("objectIDs"); if (map == null) { pcall-short { map = (Map) nuForeignObject(javax(), className(javax()) + '$WeakIdentityHashMap); } if (map == null) map = new WeakIdentityHashMap; // older JavaX generalMap.put("objectIDs", map); } Long l = cast map.get(o); if (l == null) { l = toLong(generalMap.get("lastObjectID"))+1; generalMap.put("lastObjectID", l); map.put(o, l); } ret l; } } static Collection objectID_liveIDs() { Map generalMap = cast getOpt(javax(), 'generalMap); if (generalMap == null) ret new L; synchronized(generalMap) { ret cloneList(values((Map) generalMap.get("objectIDs"))); } }