From 57fbc06213dea52677758ea63e455a7201fc41d0 Mon Sep 17 00:00:00 2001
From: Marco Villegas <marvil07@gmail.com>
Date: Fri, 26 Nov 2010 15:57:30 -0500
Subject: [PATCH] bug #983202: Stop passing the same $options parameter in cascade on operation and item entity CRUD methods.

- Do not pass $options to
  VersioncontrolItem::determineSourceItemRevisionID().
  As the $options apply only for the current item object, not its source
  item.
- Do not pass $options to VersioncontrolOperation CRUD methods.
  That array change when passed to different entities, so it does not
  make sense to pass it in cascade.
---
 includes/VersioncontrolItem.php      |   10 +++++-----
 includes/VersioncontrolOperation.php |   12 ++++++------
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git includes/VersioncontrolItem.php includes/VersioncontrolItem.php
index 57f4694..f41328d 100644
--- includes/VersioncontrolItem.php
+++ includes/VersioncontrolItem.php
@@ -712,8 +712,8 @@ abstract class VersioncontrolItem extends VersioncontrolEntity {
     // Append default options.
     $options += $this->defaultCrudOptions['update'];
 
-    if ($options['source item update']) {
-      $this->determineSourceItemRevisionID($options);
+    if (!empty($options['source item update'])) {
+      $this->determineSourceItemRevisionID();
     }
 
     // make sure repo id is set for drupal_write_record()
@@ -740,7 +740,7 @@ abstract class VersioncontrolItem extends VersioncontrolEntity {
     $options += $this->defaultCrudOptions['insert'];
 
     if (empty($this->source_item_revision_id)) {
-      $this->determineSourceItemRevisionID($options);
+      $this->determineSourceItemRevisionID();
     }
 
     // make sure repo id is set for drupal_write_record()
@@ -762,10 +762,10 @@ abstract class VersioncontrolItem extends VersioncontrolEntity {
    *
    * // FIXME this is colosally hacky right now. right now it just inserts if the data is available, there is ZERO discovery
    */
-  protected function determineSourceItemRevisionID($options) {
+  protected function determineSourceItemRevisionID() {
     if ($this->sourceItem instanceof VersioncontrolItem) {
       if (!isset($this->sourceItem->item_revision_id)) {
-        $this->sourceItem->insert($options);
+        $this->sourceItem->insert();
       }
       $this->source_item_revision_id = $this->sourceItem->item_revision_id;
     }
diff --git includes/VersioncontrolOperation.php includes/VersioncontrolOperation.php
index 519d432..b56aa90 100644
--- includes/VersioncontrolOperation.php
+++ includes/VersioncontrolOperation.php
@@ -141,7 +141,7 @@ abstract class VersioncontrolOperation extends VersioncontrolEntity {
     drupal_write_record('versioncontrol_operations', $this);
 
     if (!empty($options['nested'])) {
-      $this->insertNested($options);
+      $this->insertNested();
     }
 
     $this->backendInsert($options);
@@ -151,12 +151,12 @@ abstract class VersioncontrolOperation extends VersioncontrolEntity {
     return $this;
   }
 
-  protected function insertNested($options) {
+  protected function insertNested() {
     foreach ($this->itemRevisions as $item) {
       if (!isset($item->vc_op_id)) {
         $item->vc_op_id = $this->vc_op_id;
       }
-      $item->insert($options);
+      $item->insert(array('source item update' => TRUE));
     }
   }
 
@@ -176,7 +176,7 @@ abstract class VersioncontrolOperation extends VersioncontrolEntity {
     drupal_write_record('versioncontrol_operations', $this, 'vc_op_id');
 
     if (!empty($options['nested'])) {
-      $this->updateNested($options);
+      $this->updateNested();
     }
 
     $this->backendUpdate($options);
@@ -186,9 +186,9 @@ abstract class VersioncontrolOperation extends VersioncontrolEntity {
     return $this;
   }
 
-  protected function updateNested($options) {
+  protected function updateNested() {
     foreach ($this->itemRevisions as $item) {
-      $item->save($options);
+      $item->save(array('source item update' => TRUE));
     }
   }
 
-- 
1.7.2.3

