Changeset 12977
- Timestamp:
- 10/17/10 15:22:41 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/Package.java
r12959 r12977 50 50 private transient LispObject propertyList; 51 51 52 /** Symbols internal to the package. */ 52 53 private transient final ConcurrentHashMap<String, Symbol> internalSymbols 53 54 = new ConcurrentHashMap<String, Symbol>(16); 55 /** Symbols exported from the package. 56 * 57 * Those symbols in this collection are not contained in the internalSymbols 58 */ 54 59 private transient final ConcurrentHashMap<String, Symbol> externalSymbols 55 60 = new ConcurrentHashMap<String, Symbol>(16); … … 142 147 } 143 148 149 private void makeSymbolsUninterned(ConcurrentHashMap symbolMap) { 150 Symbol sym; 151 for (Iterator<Symbol> it = symbolMap.values().iterator(); 152 it.hasNext();) { 153 sym = it.next(); 154 if (sym.getPackage() == this) { 155 sym.setPackage(NIL); 156 } 157 } 158 symbolMap.clear(); 159 } 160 144 161 public final synchronized boolean delete() 145 162 { 146 163 if (name != null) { 147 164 Packages.deletePackage(this); 148 internalSymbols.clear(); 149 externalSymbols.clear(); 165 166 makeSymbolsUninterned(internalSymbols); 167 makeSymbolsUninterned(externalSymbols); // also clears externalSymbols 150 168 151 169 name = null;
Note: See TracChangeset
for help on using the changeset viewer.