Эх сурвалжийг харах

Optimsed code

Following note in review by @igrr :+1:
Krzysztof 9 жил өмнө
parent
commit
3aca537157

+ 2 - 10
examples/08_nvs_rw_blob/main/nvs_rw_blob.c

@@ -74,22 +74,14 @@ esp_err_t save_run_time(void)
     if (err != ESP_OK && err != ESP_ERR_NVS_NOT_FOUND) return err;
 
     // Read previously saved blob if available
-    uint32_t* run_time;
+    uint32_t* run_time = malloc(required_size + sizeof(uint32_t));
     if (required_size > 0) {
-        run_time = malloc(required_size);
-        // read previously saved blob
         err = nvs_get_blob(my_handle, "run_time", run_time, &required_size);
         if (err != ESP_OK) return err;
-        // add extra space for the new value
-        required_size += sizeof(uint32_t);
-        run_time = realloc(run_time, required_size);
-    } else {
-        // nothing saved jet - just allocate space for the first value to save
-        required_size = sizeof(uint32_t);
-        run_time = malloc(required_size);
     }
 
     // Write value including previously saved blob if available
+    required_size += sizeof(uint32_t);
     run_time[required_size / sizeof(uint32_t) - 1] = xTaskGetTickCount() * portTICK_PERIOD_MS;
     err = nvs_set_blob(my_handle, "run_time", run_time, required_size);
     if (err != ESP_OK) return err;