180 return 0; 181 } 182 183 inline void JavaAssertions::trace(const char* name, 184 const char* typefound, const char* namefound, bool enabled) { 185 if (TraceJavaAssertions) { 186 tty->print_cr("JavaAssertions: search for %s found %s %s=%d", 187 name, typefound, namefound[0] != '\0' ? namefound : "'default'", enabled); 188 } 189 } 190 191 bool JavaAssertions::enabled(const char* classname, bool systemClass) { 192 assert(classname != 0, "must have a classname"); 193 194 // This will be slow if the number of assertion options on the command line is 195 // large--it traverses two lists, one of them multiple times. Could use a 196 // single n-ary tree instead of lists if someone ever notices. 197 198 // First check options that apply to classes. If we find a match we're done. 199 OptionList* p; 200 if (p = match_class(classname)) { 201 trace(classname, "class", p->name(), p->enabled()); 202 return p->enabled(); 203 } 204 205 // Now check packages, from most specific to least. 206 if (p = match_package(classname)) { 207 trace(classname, "package", p->name(), p->enabled()); 208 return p->enabled(); 209 } 210 211 // No match. Return the default status. 212 bool result = systemClass ? systemClassDefault() : userClassDefault(); 213 trace(classname, systemClass ? "system" : "user", "default", result); 214 return result; 215 } | 180 return 0; 181 } 182 183 inline void JavaAssertions::trace(const char* name, 184 const char* typefound, const char* namefound, bool enabled) { 185 if (TraceJavaAssertions) { 186 tty->print_cr("JavaAssertions: search for %s found %s %s=%d", 187 name, typefound, namefound[0] != '\0' ? namefound : "'default'", enabled); 188 } 189 } 190 191 bool JavaAssertions::enabled(const char* classname, bool systemClass) { 192 assert(classname != 0, "must have a classname"); 193 194 // This will be slow if the number of assertion options on the command line is 195 // large--it traverses two lists, one of them multiple times. Could use a 196 // single n-ary tree instead of lists if someone ever notices. 197 198 // First check options that apply to classes. If we find a match we're done. 199 OptionList* p; 200 if ((p = match_class(classname))) { 201 trace(classname, "class", p->name(), p->enabled()); 202 return p->enabled(); 203 } 204 205 // Now check packages, from most specific to least. 206 if ((p = match_package(classname))) { 207 trace(classname, "package", p->name(), p->enabled()); 208 return p->enabled(); 209 } 210 211 // No match. Return the default status. 212 bool result = systemClass ? systemClassDefault() : userClassDefault(); 213 trace(classname, systemClass ? "system" : "user", "default", result); 214 return result; 215 } |