Просмотр исходного кода

core: safety check for freeing either pkg or shm values for var, when applicable

- just an improvement to avoid doing both operations by mistake
Daniel-Constantin Mierla 11 лет назад
Родитель
Сommit
256b1e17e5
1 измененных файлов с 3 добавлено и 1 удалено
  1. 3 1
      pvapi.c

+ 3 - 1
pvapi.c

@@ -1473,8 +1473,10 @@ int pv_elem_free_all(pv_elem_p log)
 void pv_value_destroy(pv_value_t *val)
 void pv_value_destroy(pv_value_t *val)
 {
 {
 	if(val==0) return;
 	if(val==0) return;
+
 	if(val->flags&PV_VAL_PKG) pkg_free(val->rs.s);
 	if(val->flags&PV_VAL_PKG) pkg_free(val->rs.s);
-	if(val->flags&PV_VAL_SHM) shm_free(val->rs.s);
+	else if(val->flags&PV_VAL_SHM) shm_free(val->rs.s);
+
 	memset(val, 0, sizeof(pv_value_t));
 	memset(val, 0, sizeof(pv_value_t));
 }
 }