157 begin_elem("symbol id='%d'", id); 158 name(obj->as_symbol()); 159 end_elem(); 160 } else { 161 // Should not happen. 162 elem("unknown id='%d'", id); 163 } 164 return id; 165 } 166 167 void CompileLog::name(ciSymbol* name) { 168 if (name == NULL) return; 169 print(" name='"); 170 name->print_symbol_on(text()); // handles quoting conventions 171 print("'"); 172 } 173 174 void CompileLog::name(ciKlass* k) { 175 print(" name='"); 176 if (!k->is_loaded()) { 177 text()->print(k->name()->as_klass_external_name()); 178 } else { 179 text()->print(k->external_name()); 180 } 181 print("'"); 182 } 183 184 // ------------------------------------------------------------------ 185 // CompileLog::clear_identities 186 // Forget which identities have been printed. 187 void CompileLog::clear_identities() { 188 _identities_limit = 0; 189 } 190 191 // ------------------------------------------------------------------ 192 // CompileLog::finish_log_on_error 193 // 194 // Note: This function is called after fatal error, avoid unnecessary memory 195 // or stack allocation, use only async-safe functions. It's possible JVM is 196 // only partially initialized. 197 void CompileLog::finish_log_on_error(outputStream* file, char* buf, int buflen) { 198 static bool called_exit = false; 199 if (called_exit) return; | 157 begin_elem("symbol id='%d'", id); 158 name(obj->as_symbol()); 159 end_elem(); 160 } else { 161 // Should not happen. 162 elem("unknown id='%d'", id); 163 } 164 return id; 165 } 166 167 void CompileLog::name(ciSymbol* name) { 168 if (name == NULL) return; 169 print(" name='"); 170 name->print_symbol_on(text()); // handles quoting conventions 171 print("'"); 172 } 173 174 void CompileLog::name(ciKlass* k) { 175 print(" name='"); 176 if (!k->is_loaded()) { 177 text()->print("%s", k->name()->as_klass_external_name()); 178 } else { 179 text()->print("%s", k->external_name()); 180 } 181 print("'"); 182 } 183 184 // ------------------------------------------------------------------ 185 // CompileLog::clear_identities 186 // Forget which identities have been printed. 187 void CompileLog::clear_identities() { 188 _identities_limit = 0; 189 } 190 191 // ------------------------------------------------------------------ 192 // CompileLog::finish_log_on_error 193 // 194 // Note: This function is called after fatal error, avoid unnecessary memory 195 // or stack allocation, use only async-safe functions. It's possible JVM is 196 // only partially initialized. 197 void CompileLog::finish_log_on_error(outputStream* file, char* buf, int buflen) { 198 static bool called_exit = false; 199 if (called_exit) return; |