[AppControl] clone app_control_h before using app_control_to_bundle(). prevent shallo...
authorJoonghyun Cho <jh5.cho@samsung.com>
Thu, 16 Apr 2015 11:24:58 +0000 (20:24 +0900)
committerJoonghyun Cho <jh5.cho@samsung.com>
Thu, 16 Apr 2015 11:49:04 +0000 (20:49 +0900)
Change-Id: I8c9ea40671508a15f54d864967c3d021ff780f0b

src/runtime/app_control.cc
src/runtime/app_control.h

index 8c87041..ef022cd 100644 (file)
@@ -16,14 +16,15 @@ namespace {
 }  // namespace
 
 AppControl::AppControl(app_control_h app_control) {
-  app_control_to_bundle(app_control, &app_control_bundle_);
+  app_control_clone(&app_control_, app_control);
+  app_control_to_bundle(app_control_, &app_control_bundle_);
   bundle_encode(app_control_bundle_, &app_control_bundle_raw_,
                 &app_control_bundle_raw_len_);
 }
 
 AppControl::~AppControl() {
-  if (app_control_bundle_ != NULL) {
-    bundle_free(app_control_bundle_);
+  if (app_control_ != NULL) {
+    app_control_destroy(app_control_);
   }
   if (app_control_bundle_raw_ != NULL) {
     bundle_free_encoded_rawdata(&app_control_bundle_raw_);
index 662f63a..534c3f0 100644 (file)
@@ -31,6 +31,7 @@ class AppControl {
                     const std::vector<std::string>& value_array);
 
  private:
+  app_control_h app_control_;
   bundle* app_control_bundle_;
   bundle_raw* app_control_bundle_raw_;
   int app_control_bundle_raw_len_;