46 std::unique_ptr<LoadCommand> clone()
const override {
47 return std::unique_ptr<SymbolCommand>(
new SymbolCommand(*
this));
54 return symbols_offset_;
64 return strings_offset_;
72 void symbol_offset(uint32_t offset) {
73 symbols_offset_ = offset;
75 void numberof_symbols(uint32_t nb) {
78 void strings_offset(uint32_t offset) {
79 strings_offset_ = offset;
81 void strings_size(uint32_t size) {
85 span<const uint8_t> symbol_table()
const {
89 span<uint8_t> symbol_table() {
93 span<const uint8_t> string_table()
const {
97 span<uint8_t> string_table() {
101 uint32_t original_str_size()
const {
102 return original_str_size_;
105 uint32_t original_nb_symbols()
const {
106 return original_nb_symbols_;
109 std::ostream& print(std::ostream& os)
const override;
111 void accept(Visitor& visitor)
const override;
113 static bool classof(
const LoadCommand* cmd) {
114 return cmd->command() == LoadCommand::TYPE::SYMTAB;
118 uint32_t symbols_offset_ = 0;
119 uint32_t nb_symbols_ = 0;
120 uint32_t strings_offset_ = 0;
121 uint32_t strings_size_ = 0;
123 uint32_t original_str_size_ = 0;
124 uint32_t original_nb_symbols_ = 0;
126 span<uint8_t> symbol_table_;
127 span<uint8_t> string_table_;