dev/core#562 remove calls to dao->free() from api folder
authoreileen <emcnaughton@wikimedia.org>
Thu, 3 Jan 2019 21:34:56 +0000 (10:34 +1300)
committereileen <emcnaughton@wikimedia.org>
Thu, 3 Jan 2019 21:34:56 +0000 (10:34 +1300)
Per gitlab

The DAO object since ? 4.7.x? has been freed on _destruct. Using the ->free action has been demonstrated to create some rare bugs - ie. because query sets from the outer loop can be lost. There is no benefit in calling it any more and some harm

https://github.com/civicrm/civicrm-core/pull/13192 was the last one in this series

api/v3/Activity.php
api/v3/Mailing.php
api/v3/MembershipStatus.php
api/v3/utils.php

index 374faaa929fca08f43e65cbedd9b8afe846cff1d..fc84cc1d73718b588334d26a541c384b71243821 100644 (file)
@@ -105,9 +105,6 @@ function civicrm_api3_activity_create($params) {
         $activityDAO->id = $params['id'];
         $activityDAO->is_current_revision = 0;
         if (!$activityDAO->save()) {
-          if (is_object($activityDAO)) {
-            $activityDAO->free();
-          }
           throw new API_Exception(ts("Unable to revision existing case activity."));
         }
         $createRevision = TRUE;
index cee37851cd6b1bd4b09407948a77627f43e2166d..4df52e1e7244f3a8c021c891fcd7783070577c20 100644 (file)
@@ -655,7 +655,6 @@ function civicrm_api3_mailing_send_test($params) {
         'email_id' => $dao->id,
       );
     }
-    $dao->free();
     foreach ($testEmailParams['emails'] as $key => $email) {
       $email = trim($email);
       $contactId = $emailId = NULL;
index 18732ddbef1f23c91d7c7b3d7c526c0a208880b8..fabdd80368602f32690c665867163544bb528ecf 100644 (file)
@@ -173,10 +173,8 @@ SELECT start_date, end_date, join_date, membership_type_id
     }
   }
   else {
-    $dao->free();
     throw new API_Exception('did not find a membership record');
   }
-  $dao->free();
   return $result;
 }
 
index 73de6ce4f1284423e7c164147d879eb6aefd6b6a..ed8acaa8d8e64ad17ca5c77fc397f7e6fb34b8a1 100644 (file)
@@ -218,9 +218,6 @@ function civicrm_api3_create_success($values = 1, $params = array(), $entity = N
       $result['undefined_fields'] = array_merge($undefined);
     }
   }
-  if (is_object($dao)) {
-    $dao->free();
-  }
 
   $result['version'] = 3;
   if (is_array($values)) {