mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 04:42:44 +00:00 
			
		
		
		
	Everywhere: Add deprecated_ prefix to JsonValue::to_byte_string
				
					
				
			`JsonValue::to_byte_string` has peculiar type-erasure semantics which is not usually intended. Unfortunately, it also has a very stereotypical name which does not warn about unexpected behavior. So let's prefix it with `deprecated_` to make new code use `as_string` if it just wants to get string value or `serialized<StringBuilder>` if it needs to do proper serialization.
This commit is contained in:
		
							parent
							
								
									4ed5287792
								
							
						
					
					
						commit
						ccd701809f
					
				
					 20 changed files with 46 additions and 50 deletions
				
			
		|  | @ -85,7 +85,7 @@ public: | ||||||
|         return alternative; |         return alternative; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     ByteString to_byte_string() const |     ByteString deprecated_to_byte_string() const | ||||||
|     { |     { | ||||||
|         if (is_string()) |         if (is_string()) | ||||||
|             return as_string(); |             return as_string(); | ||||||
|  | @ -290,7 +290,7 @@ template<> | ||||||
| struct Formatter<JsonValue> : Formatter<StringView> { | struct Formatter<JsonValue> : Formatter<StringView> { | ||||||
|     ErrorOr<void> format(FormatBuilder& builder, JsonValue const& value) |     ErrorOr<void> format(FormatBuilder& builder, JsonValue const& value) | ||||||
|     { |     { | ||||||
|         return Formatter<StringView>::format(builder, value.to_byte_string()); |         return Formatter<StringView>::format(builder, value.serialized<StringBuilder>()); | ||||||
|     } |     } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -77,7 +77,7 @@ enum class ValueID; | ||||||
|         enum_generator.appendln("enum class @name:titlecase@ : @enum_type@ {"); |         enum_generator.appendln("enum class @name:titlecase@ : @enum_type@ {"); | ||||||
| 
 | 
 | ||||||
|         for (auto& member : members.values()) { |         for (auto& member : members.values()) { | ||||||
|             auto member_name = member.to_byte_string(); |             auto member_name = member.as_string(); | ||||||
|             // Don't include aliases in the enum.
 |             // Don't include aliases in the enum.
 | ||||||
|             if (member_name.contains('=')) |             if (member_name.contains('=')) | ||||||
|                 continue; |                 continue; | ||||||
|  | @ -126,7 +126,7 @@ Optional<@name:titlecase@> value_id_to_@name:snakecase@(ValueID value_id) | ||||||
| 
 | 
 | ||||||
|         for (auto& member : members.values()) { |         for (auto& member : members.values()) { | ||||||
|             auto member_generator = enum_generator.fork(); |             auto member_generator = enum_generator.fork(); | ||||||
|             auto member_name = member.to_byte_string(); |             auto member_name = member.as_string(); | ||||||
|             if (member_name.contains('=')) { |             if (member_name.contains('=')) { | ||||||
|                 auto parts = member_name.split_view('='); |                 auto parts = member_name.split_view('='); | ||||||
|                 member_generator.set("valueid:titlecase", title_casify(parts[0])); |                 member_generator.set("valueid:titlecase", title_casify(parts[0])); | ||||||
|  | @ -154,7 +154,7 @@ ValueID to_value_id(@name:titlecase@ @name:snakecase@_value) | ||||||
| 
 | 
 | ||||||
|         for (auto& member : members.values()) { |         for (auto& member : members.values()) { | ||||||
|             auto member_generator = enum_generator.fork(); |             auto member_generator = enum_generator.fork(); | ||||||
|             auto member_name = member.to_byte_string(); |             auto member_name = member.as_string(); | ||||||
|             if (member_name.contains('=')) |             if (member_name.contains('=')) | ||||||
|                 continue; |                 continue; | ||||||
|             member_generator.set("member:titlecase", title_casify(member_name)); |             member_generator.set("member:titlecase", title_casify(member_name)); | ||||||
|  | @ -178,7 +178,7 @@ StringView to_string(@name:titlecase@ value) | ||||||
| 
 | 
 | ||||||
|         for (auto& member : members.values()) { |         for (auto& member : members.values()) { | ||||||
|             auto member_generator = enum_generator.fork(); |             auto member_generator = enum_generator.fork(); | ||||||
|             auto member_name = member.to_byte_string(); |             auto member_name = member.as_string(); | ||||||
|             if (member_name.contains('=')) |             if (member_name.contains('=')) | ||||||
|                 continue; |                 continue; | ||||||
|             member_generator.set("member:css", member_name); |             member_generator.set("member:css", member_name); | ||||||
|  |  | ||||||
|  | @ -73,7 +73,7 @@ void replace_logical_aliases(JsonObject& properties) | ||||||
|         if (logical_alias_for.has_value()) { |         if (logical_alias_for.has_value()) { | ||||||
|             auto const& aliased_properties = logical_alias_for.value(); |             auto const& aliased_properties = logical_alias_for.value(); | ||||||
|             for (auto const& aliased_property : aliased_properties.values()) { |             for (auto const& aliased_property : aliased_properties.values()) { | ||||||
|                 logical_aliases.set(name, aliased_property.to_byte_string()); |                 logical_aliases.set(name, aliased_property.as_string()); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }); |     }); | ||||||
|  | @ -768,7 +768,7 @@ size_t property_maximum_value_count(PropertyID property_id) | ||||||
|             VERIFY(max_values.has_value() && max_values->is_number() && !max_values->is_double()); |             VERIFY(max_values.has_value() && max_values->is_number() && !max_values->is_double()); | ||||||
|             auto property_generator = generator.fork(); |             auto property_generator = generator.fork(); | ||||||
|             property_generator.set("name:titlecase", title_casify(name)); |             property_generator.set("name:titlecase", title_casify(name)); | ||||||
|             property_generator.set("max_values", max_values->to_byte_string()); |             property_generator.set("max_values", max_values->template serialized<StringBuilder>()); | ||||||
|             property_generator.append(R"~~~( |             property_generator.append(R"~~~( | ||||||
|     case PropertyID::@name:titlecase@: |     case PropertyID::@name:titlecase@: | ||||||
|         return @max_values@; |         return @max_values@; | ||||||
|  | @ -834,7 +834,7 @@ Vector<PropertyID> longhands_for_shorthand(PropertyID property_id) | ||||||
|                     first = false; |                     first = false; | ||||||
|                 else |                 else | ||||||
|                     builder.append(", "sv); |                     builder.append(", "sv); | ||||||
|                 builder.appendff("PropertyID::{}", title_casify(longhand.to_byte_string())); |                 builder.appendff("PropertyID::{}", title_casify(longhand.as_string())); | ||||||
|                 return IterationDecision::Continue; |                 return IterationDecision::Continue; | ||||||
|             }); |             }); | ||||||
|             property_generator.set("longhands", builder.to_byte_string()); |             property_generator.set("longhands", builder.to_byte_string()); | ||||||
|  |  | ||||||
|  | @ -195,7 +195,7 @@ TransformFunctionMetadata transform_function_metadata(TransformFunction transfor | ||||||
|             member_generator.append(first ? " "sv : ", "sv); |             member_generator.append(first ? " "sv : ", "sv); | ||||||
|             first = false; |             first = false; | ||||||
| 
 | 
 | ||||||
|             member_generator.append(MUST(String::formatted("{{ TransformFunctionParameterType::{}, {}}}", parameter_type, value.as_object().get("required"sv)->to_byte_string()))); |             member_generator.append(MUST(String::formatted("{{ TransformFunctionParameterType::{}, {}}}", parameter_type, value.as_object().get("required"sv)->as_bool()))); | ||||||
|         }); |         }); | ||||||
| 
 | 
 | ||||||
|         member_generator.append(R"~~~( } |         member_generator.append(R"~~~( } | ||||||
|  |  | ||||||
|  | @ -57,7 +57,7 @@ enum class ValueID { | ||||||
| 
 | 
 | ||||||
|     identifier_data.for_each([&](auto& name) { |     identifier_data.for_each([&](auto& name) { | ||||||
|         auto member_generator = generator.fork(); |         auto member_generator = generator.fork(); | ||||||
|         member_generator.set("name:titlecase", title_casify(name.to_byte_string())); |         member_generator.set("name:titlecase", title_casify(name.as_string())); | ||||||
| 
 | 
 | ||||||
|         member_generator.append(R"~~~( |         member_generator.append(R"~~~( | ||||||
|     @name:titlecase@, |     @name:titlecase@, | ||||||
|  | @ -105,8 +105,8 @@ HashMap<StringView, ValueID, AK::CaseInsensitiveASCIIStringViewTraits> g_stringv | ||||||
| 
 | 
 | ||||||
|     identifier_data.for_each([&](auto& name) { |     identifier_data.for_each([&](auto& name) { | ||||||
|         auto member_generator = generator.fork(); |         auto member_generator = generator.fork(); | ||||||
|         member_generator.set("name", name.to_byte_string()); |         member_generator.set("name", name.as_string()); | ||||||
|         member_generator.set("name:titlecase", title_casify(name.to_byte_string())); |         member_generator.set("name:titlecase", title_casify(name.as_string())); | ||||||
|         member_generator.append(R"~~~( |         member_generator.append(R"~~~( | ||||||
|     {"@name@"sv, ValueID::@name:titlecase@}, |     {"@name@"sv, ValueID::@name:titlecase@}, | ||||||
| )~~~"); | )~~~"); | ||||||
|  | @ -126,8 +126,8 @@ StringView string_from_value_id(ValueID value_id) { | ||||||
| 
 | 
 | ||||||
|     identifier_data.for_each([&](auto& name) { |     identifier_data.for_each([&](auto& name) { | ||||||
|         auto member_generator = generator.fork(); |         auto member_generator = generator.fork(); | ||||||
|         member_generator.set("name", name.to_byte_string()); |         member_generator.set("name", name.as_string()); | ||||||
|         member_generator.set("name:titlecase", title_casify(name.to_byte_string())); |         member_generator.set("name:titlecase", title_casify(name.as_string())); | ||||||
|         member_generator.append(R"~~~( |         member_generator.append(R"~~~( | ||||||
|     case ValueID::@name:titlecase@: |     case ValueID::@name:titlecase@: | ||||||
|         return "@name@"sv; |         return "@name@"sv; | ||||||
|  |  | ||||||
|  | @ -115,7 +115,7 @@ TEST_CASE(json_duplicate_keys) | ||||||
| TEST_CASE(json_u64_roundtrip) | TEST_CASE(json_u64_roundtrip) | ||||||
| { | { | ||||||
|     auto big_value = 0xffffffffffffffffull; |     auto big_value = 0xffffffffffffffffull; | ||||||
|     auto json = JsonValue(big_value).to_byte_string(); |     auto json = JsonValue(big_value).serialized<StringBuilder>(); | ||||||
|     auto value = JsonValue::from_string(json); |     auto value = JsonValue::from_string(json); | ||||||
|     EXPECT_EQ_FORCE(value.is_error(), false); |     EXPECT_EQ_FORCE(value.is_error(), false); | ||||||
|     EXPECT_EQ(value.value().as_u64(), big_value); |     EXPECT_EQ(value.value().as_u64(), big_value); | ||||||
|  |  | ||||||
|  | @ -133,7 +133,8 @@ HashMap<ByteString, ByteString> Presentation::parse_metadata(JsonObject const& m | ||||||
|     HashMap<ByteString, ByteString> metadata; |     HashMap<ByteString, ByteString> metadata; | ||||||
| 
 | 
 | ||||||
|     metadata_object.for_each_member([&](auto const& key, auto const& value) { |     metadata_object.for_each_member([&](auto const& key, auto const& value) { | ||||||
|         metadata.set(key, value.to_byte_string()); |         // FIXME: Do not serialize values here just to convert them back to proper types later.
 | ||||||
|  |         metadata.set(key, value.deprecated_to_byte_string()); | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     return metadata; |     return metadata; | ||||||
|  |  | ||||||
|  | @ -58,7 +58,7 @@ void SlideObject::set_property(StringView name, JsonValue value) | ||||||
| void GraphicsObject::set_property(StringView name, JsonValue value) | void GraphicsObject::set_property(StringView name, JsonValue value) | ||||||
| { | { | ||||||
|     if (name == "color"sv) { |     if (name == "color"sv) { | ||||||
|         if (auto color = Gfx::Color::from_string(value.to_byte_string()); color.has_value()) { |         if (auto color = Gfx::Color::from_string(value.as_string()); color.has_value()) { | ||||||
|             m_color = color.release_value(); |             m_color = color.release_value(); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | @ -68,15 +68,15 @@ void GraphicsObject::set_property(StringView name, JsonValue value) | ||||||
| void Text::set_property(StringView name, JsonValue value) | void Text::set_property(StringView name, JsonValue value) | ||||||
| { | { | ||||||
|     if (name == "text"sv) { |     if (name == "text"sv) { | ||||||
|         m_text = value.to_byte_string(); |         m_text = value.as_string(); | ||||||
|     } else if (name == "font"sv) { |     } else if (name == "font"sv) { | ||||||
|         m_font_family = value.to_byte_string(); |         m_font_family = value.as_string(); | ||||||
|     } else if (name == "font-weight"sv) { |     } else if (name == "font-weight"sv) { | ||||||
|         m_font_weight = Gfx::name_to_weight(value.to_byte_string()); |         m_font_weight = Gfx::name_to_weight(value.as_string()); | ||||||
|     } else if (name == "font-size"sv) { |     } else if (name == "font-size"sv) { | ||||||
|         m_font_size_in_pt = value.to_float(); |         m_font_size_in_pt = value.to_float(); | ||||||
|     } else if (name == "text-alignment"sv) { |     } else if (name == "text-alignment"sv) { | ||||||
|         m_text_align = value.to_byte_string(); |         m_text_align = value.as_string(); | ||||||
|     } |     } | ||||||
|     GraphicsObject::set_property(name, move(value)); |     GraphicsObject::set_property(name, move(value)); | ||||||
| } | } | ||||||
|  | @ -84,11 +84,11 @@ void Text::set_property(StringView name, JsonValue value) | ||||||
| void Image::set_property(StringView name, JsonValue value) | void Image::set_property(StringView name, JsonValue value) | ||||||
| { | { | ||||||
|     if (name == "path"sv) { |     if (name == "path"sv) { | ||||||
|         m_src = value.to_byte_string(); |         m_src = value.as_string(); | ||||||
|     } else if (name == "scaling-mode"sv) { |     } else if (name == "scaling-mode"sv) { | ||||||
|         if (value.to_byte_string() == "nearest-neighbor"sv) |         if (value.as_string() == "nearest-neighbor"sv) | ||||||
|             m_image_rendering = "crisp-edges"sv; |             m_image_rendering = "crisp-edges"sv; | ||||||
|         else if (value.to_byte_string() == "smooth-pixels"sv) |         else if (value.as_string() == "smooth-pixels"sv) | ||||||
|             m_image_rendering = "pixelated"sv; |             m_image_rendering = "pixelated"sv; | ||||||
|     } |     } | ||||||
|     SlideObject::set_property(name, move(value)); |     SlideObject::set_property(name, move(value)); | ||||||
|  |  | ||||||
|  | @ -166,7 +166,7 @@ ByteString HelpWindow::render(StringView key) | ||||||
|         markdown_builder.append("No required arguments.\n"sv); |         markdown_builder.append("No required arguments.\n"sv); | ||||||
| 
 | 
 | ||||||
|     for (size_t i = 0; i < argc; ++i) |     for (size_t i = 0; i < argc; ++i) | ||||||
|         markdown_builder.appendff("- `{}`\n", argnames.at(i).to_byte_string()); |         markdown_builder.appendff("- `{}`\n", argnames.at(i).as_string()); | ||||||
| 
 | 
 | ||||||
|     if (argc > 0) |     if (argc > 0) | ||||||
|         markdown_builder.append("\n"sv); |         markdown_builder.append("\n"sv); | ||||||
|  | @ -175,7 +175,7 @@ ByteString HelpWindow::render(StringView key) | ||||||
|         auto opt_count = argnames.size() - argc; |         auto opt_count = argnames.size() - argc; | ||||||
|         markdown_builder.appendff("{} optional argument(s):\n", opt_count); |         markdown_builder.appendff("{} optional argument(s):\n", opt_count); | ||||||
|         for (size_t i = argc; i < (size_t)argnames.size(); ++i) |         for (size_t i = argc; i < (size_t)argnames.size(); ++i) | ||||||
|             markdown_builder.appendff("- `{}`\n", argnames.at(i).to_byte_string()); |             markdown_builder.appendff("- `{}`\n", argnames.at(i).as_string()); | ||||||
|         markdown_builder.append("\n"sv); |         markdown_builder.append("\n"sv); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -188,8 +188,8 @@ ByteString HelpWindow::render(StringView key) | ||||||
|         VERIFY(examples.has_value()); |         VERIFY(examples.has_value()); | ||||||
|         markdown_builder.append("# EXAMPLES\n"sv); |         markdown_builder.append("# EXAMPLES\n"sv); | ||||||
|         examples->for_each_member([&](auto& text, auto& description_value) { |         examples->for_each_member([&](auto& text, auto& description_value) { | ||||||
|             dbgln("```js\n{}\n```\n\n- {}\n", text, description_value.to_byte_string()); |             dbgln("```js\n{}\n```\n\n- {}\n", text, description_value.as_string()); | ||||||
|             markdown_builder.appendff("```js\n{}\n```\n\n- {}\n", text, description_value.to_byte_string()); |             markdown_builder.appendff("```js\n{}\n```\n\n- {}\n", text, description_value.as_string()); | ||||||
|         }); |         }); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -731,7 +731,7 @@ ByteString Sheet::generate_inline_documentation_for(StringView function, size_t | ||||||
|             builder.append('<'); |             builder.append('<'); | ||||||
|         else if (i >= argc) |         else if (i >= argc) | ||||||
|             builder.append('['); |             builder.append('['); | ||||||
|         builder.append(argnames[i].to_byte_string()); |         builder.append(argnames[i].as_string()); | ||||||
|         if (i == argument_index) |         if (i == argument_index) | ||||||
|             builder.append('>'); |             builder.append('>'); | ||||||
|         else if (i >= argc) |         else if (i >= argc) | ||||||
|  |  | ||||||
|  | @ -292,7 +292,7 @@ ErrorOr<NonnullOwnPtr<Profile>> Profile::load_from_perfcore_file(StringView path | ||||||
|     HashMap<FlatPtr, ByteString> profile_strings; |     HashMap<FlatPtr, ByteString> profile_strings; | ||||||
|     for (FlatPtr string_id = 0; string_id < strings.size(); ++string_id) { |     for (FlatPtr string_id = 0; string_id < strings.size(); ++string_id) { | ||||||
|         auto const& value = strings.at(string_id); |         auto const& value = strings.at(string_id); | ||||||
|         profile_strings.set(string_id, value.to_byte_string()); |         profile_strings.set(string_id, value.as_string()); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     auto events_value = object.get_array("events"sv); |     auto events_value = object.get_array("events"sv); | ||||||
|  |  | ||||||
|  | @ -144,7 +144,7 @@ void DynamicWidgetContainer::restore_view_state() | ||||||
| 
 | 
 | ||||||
|             order_or_error.value().as_array().for_each([&](auto& section_label) { |             order_or_error.value().as_array().for_each([&](auto& section_label) { | ||||||
|                 for (auto& container : containers) { |                 for (auto& container : containers) { | ||||||
|                     if (container.section_label() == section_label.to_byte_string()) |                     if (container.section_label() == section_label.as_string()) | ||||||
|                         new_child_order.append(container); |                         new_child_order.append(container); | ||||||
|                 } |                 } | ||||||
|             }); |             }); | ||||||
|  |  | ||||||
|  | @ -138,7 +138,7 @@ Variant JsonArrayModel::data(ModelIndex const& index, ModelRole role) const | ||||||
|             return ""; |             return ""; | ||||||
|         if (data->is_number()) |         if (data->is_number()) | ||||||
|             return data.value(); |             return data.value(); | ||||||
|         return data->to_byte_string(); |         return data->as_string(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (role == ModelRole::Sort) { |     if (role == ModelRole::Sort) { | ||||||
|  |  | ||||||
|  | @ -439,7 +439,7 @@ Value JSONObject::parse_json_value(VM& vm, JsonValue const& value) | ||||||
|     if (value.is_number()) |     if (value.is_number()) | ||||||
|         return Value(value.to_double(0)); |         return Value(value.to_double(0)); | ||||||
|     if (value.is_string()) |     if (value.is_string()) | ||||||
|         return PrimitiveString::create(vm, value.to_byte_string()); |         return PrimitiveString::create(vm, value.as_string()); | ||||||
|     if (value.is_bool()) |     if (value.is_bool()) | ||||||
|         return Value(static_cast<bool>(value.as_bool())); |         return Value(static_cast<bool>(value.as_bool())); | ||||||
|     VERIFY_NOT_REACHED(); |     VERIFY_NOT_REACHED(); | ||||||
|  |  | ||||||
|  | @ -269,8 +269,7 @@ ErrorOr<void, Client::WrappedError> Client::handle_request(JsonValue body) | ||||||
| { | { | ||||||
|     if constexpr (WEBDRIVER_DEBUG) { |     if constexpr (WEBDRIVER_DEBUG) { | ||||||
|         dbgln("Got HTTP request: {} {}", m_request->method_name(), m_request->resource()); |         dbgln("Got HTTP request: {} {}", m_request->method_name(), m_request->resource()); | ||||||
|         if (!body.is_null()) |         dbgln("Body: {}", body); | ||||||
|             dbgln("Body: {}", body.to_byte_string()); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     auto [handler, parameters] = TRY(match_route(*m_request)); |     auto [handler, parameters] = TRY(match_route(*m_request)); | ||||||
|  |  | ||||||
|  | @ -323,7 +323,7 @@ Web::WebDriver::Response Client::switch_to_window(Web::WebDriver::Parameters par | ||||||
|     if (!handle.has_value()) |     if (!handle.has_value()) | ||||||
|         return Web::WebDriver::Error::from_code(Web::WebDriver::ErrorCode::InvalidArgument, "No property called 'handle' present"); |         return Web::WebDriver::Error::from_code(Web::WebDriver::ErrorCode::InvalidArgument, "No property called 'handle' present"); | ||||||
| 
 | 
 | ||||||
|     return session->switch_to_window(handle->to_byte_string()); |     return session->switch_to_window(handle->as_string()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // 11.4 Get Window Handles, https://w3c.github.io/webdriver/#dfn-get-window-handles
 | // 11.4 Get Window Handles, https://w3c.github.io/webdriver/#dfn-get-window-handles
 | ||||||
|  |  | ||||||
|  | @ -2067,7 +2067,7 @@ ErrorOr<Vector<Line::CompletionSuggestion>> Shell::complete_via_program_itself(s | ||||||
|                     dbgln("LibLine: Unhandled completion kind: {}", kind); |                     dbgln("LibLine: Unhandled completion kind: {}", kind); | ||||||
|                 } |                 } | ||||||
|             } else { |             } else { | ||||||
|                 suggestions.append(parsed.to_byte_string()); |                 suggestions.append(parsed.deprecated_to_byte_string()); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             return IterationDecision::Continue; |             return IterationDecision::Continue; | ||||||
|  |  | ||||||
|  | @ -108,11 +108,7 @@ void print(JsonValue const& value, int spaces_per_indent, int indent, bool use_c | ||||||
|         else if (value.is_null()) |         else if (value.is_null()) | ||||||
|             out("\033[34;1m"); |             out("\033[34;1m"); | ||||||
|     } |     } | ||||||
|     if (value.is_string()) |     out("{}", value); | ||||||
|         out("\""); |  | ||||||
|     out("{}", value.to_byte_string()); |  | ||||||
|     if (value.is_string()) |  | ||||||
|         out("\""); |  | ||||||
|     if (use_color) |     if (use_color) | ||||||
|         out("\033[0m"); |         out("\033[0m"); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -42,7 +42,7 @@ ErrorOr<int> serenity_main(Main::Arguments) | ||||||
|         out("{:>4}: ", interrupt); |         out("{:>4}: ", interrupt); | ||||||
| 
 | 
 | ||||||
|         for (size_t i = 0; i < cpu_count; ++i) |         for (size_t i = 0; i < cpu_count; ++i) | ||||||
|             out("{:>10}", call_counts[i].to_byte_string()); |             out("{:>10}", call_counts[i].as_integer<u64>()); | ||||||
| 
 | 
 | ||||||
|         outln("  {:10}  {:30}", controller, purpose); |         outln("  {:10}  {:30}", controller, purpose); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|  | @ -49,7 +49,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments) | ||||||
|     for (auto& value : sorted_regions) { |     for (auto& value : sorted_regions) { | ||||||
|         auto& map = value.as_object(); |         auto& map = value.as_object(); | ||||||
|         auto address = map.get_addr("address"sv).value_or(0); |         auto address = map.get_addr("address"sv).value_or(0); | ||||||
|         auto size = map.get("size"sv).value_or({}).to_byte_string(); |         auto size = map.get_u64("size"sv).value(); | ||||||
| 
 | 
 | ||||||
|         auto access = ByteString::formatted("{}{}{}{}{}", |         auto access = ByteString::formatted("{}{}{}{}{}", | ||||||
|             (map.get_bool("readable"sv).value_or(false) ? "r" : "-"), |             (map.get_bool("readable"sv).value_or(false) ? "r" : "-"), | ||||||
|  | @ -61,13 +61,13 @@ ErrorOr<int> serenity_main(Main::Arguments arguments) | ||||||
|         out("{:p}  ", address); |         out("{:p}  ", address); | ||||||
|         out("{:>10} ", size); |         out("{:>10} ", size); | ||||||
|         if (extended) { |         if (extended) { | ||||||
|             auto resident = map.get("amount_resident"sv).value_or({}).to_byte_string(); |             auto resident = map.get_u64("amount_resident"sv).value(); | ||||||
|             auto dirty = map.get("amount_dirty"sv).value_or({}).to_byte_string(); |             auto dirty = map.get_u64("amount_dirty"sv).value(); | ||||||
|             auto vmobject = map.get_byte_string("vmobject"sv).value_or({}); |             auto vmobject = map.get_byte_string("vmobject"sv).value(); | ||||||
|             if (vmobject.ends_with("VMObject"sv)) |             if (vmobject.ends_with("VMObject"sv)) | ||||||
|                 vmobject = vmobject.substring(0, vmobject.length() - 8); |                 vmobject = vmobject.substring(0, vmobject.length() - 8); | ||||||
|             auto purgeable = map.get("purgeable"sv).value_or({}).to_byte_string(); |             auto purgeable = map.get_u64("purgeable"sv).value(); | ||||||
|             auto cow_pages = map.get("cow_pages"sv).value_or({}).to_byte_string(); |             auto cow_pages = map.get_u64("cow_pages"sv).value(); | ||||||
|             out("{:>10} ", resident); |             out("{:>10} ", resident); | ||||||
|             out("{:>10} ", dirty); |             out("{:>10} ", dirty); | ||||||
|             out("{:6} ", access); |             out("{:6} ", access); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Klishch
						Dan Klishch