143 if (data == NULL)
return;
145 uint32_t filepath_length = pm_options_read_u32(data);
148 if (filepath_length > 0) {
149 pm_string_constant_init(&options->
filepath, data, filepath_length);
150 data += filepath_length;
153 options->
line = pm_options_read_s32(data);
156 uint32_t encoding_length = pm_options_read_u32(data);
159 if (encoding_length > 0) {
160 pm_string_constant_init(&options->
encoding, data, encoding_length);
161 data += encoding_length;
167 uint32_t scopes_count = pm_options_read_u32(data);
170 if (scopes_count > 0) {
171 pm_options_scopes_init(options, scopes_count);
173 for (
size_t scope_index = 0; scope_index < scopes_count; scope_index++) {
174 uint32_t locals_count = pm_options_read_u32(data);
178 pm_options_scope_init(scope, locals_count);
180 for (
size_t local_index = 0; local_index < locals_count; local_index++) {
181 uint32_t local_length = pm_options_read_u32(data);
184 pm_string_constant_init(&scope->
locals[local_index], data, local_length);
185 data += local_length;