< prev index next >

src/share/vm/classfile/javaAssertions.cpp

Print this page




 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 }
< prev index next >