From 1bde0085127dc915514d05597c454b5c747581a0 Mon Sep 17 00:00:00 2001
From: andrew morton <drewish@katherinehouse.com>
Date: Tue, 4 Sep 2012 13:56:03 -0400
Subject: [PATCH] Switch some static variables into drupal_static().

---
 includes/webform.submissions.inc |   17 +++++------------
 tests/submission.test            |    3 ++-
 webform.module                   |    6 ++++--
 3 files changed, 11 insertions(+), 15 deletions(-)

diff --git a/includes/webform.submissions.inc b/includes/webform.submissions.inc
index 0ab2645..8eaaf9a 100644
--- a/includes/webform.submissions.inc
+++ b/includes/webform.submissions.inc
@@ -725,10 +725,10 @@ function webform_get_submissions($filters = array(), $header = NULL, $pager_coun
  * @return
  *   An integer value of the number of submissions.
  */
-function webform_get_submission_count($nid, $uid = NULL, $reset = FALSE) {
-  static $counts;
+function webform_get_submission_count($nid, $uid = NULL) {
+  $counts = &drupal_static(__FUNCTION__);
 
-  if (!isset($counts[$nid][$uid]) || $reset) {
+  if (!isset($counts[$nid][$uid])) {
     $query = db_select('webform_submissions', 'ws')
       ->addTag('webform_get_submission_count')
       ->condition('ws.nid', $nid)
@@ -757,15 +757,8 @@ function webform_get_submission_count($nid, $uid = NULL, $reset = FALSE) {
 /**
  * Fetch a specified submission for a webform node.
  */
-function webform_get_submission($nid, $sid, $reset = FALSE) {
-  static $submissions = array();
-
-  if ($reset) {
-    $submissions = array();
-    if (!isset($sid)) {
-      return;
-    }
-  }
+function webform_get_submission($nid, $sid) {
+  $submissions = &drupal_static(__FUNCTION__, array());
 
   // Load the submission if needed.
   if (!isset($submissions[$sid])) {
diff --git a/tests/submission.test b/tests/submission.test
index 8d4aaf6..4ac9ce3 100644
--- a/tests/submission.test
+++ b/tests/submission.test
@@ -126,7 +126,8 @@ class WebformSubmissionTestCase extends WebformTestCase {
     $sid = $matches[1];
 
     // Pull in the database submission and check the values.
-    $actual_submission = webform_get_submission($node->nid, $sid, TRUE);
+    drupal_static_reset('webform_get_submission');
+    $actual_submission = webform_get_submission($node->nid, $sid);
 
     $component_info = $this->testWebformComponents();
     foreach ($node->webform['components'] as $cid => $component) {
diff --git a/webform.module b/webform.module
index 7e2b043..aca5e83 100644
--- a/webform.module
+++ b/webform.module
@@ -1003,7 +1003,8 @@ function webform_webform_submission_presave($node, &$submission) {
   if ($has_file_components) {
     // If we're updating a submission, build a list of previous files.
     if (isset($submission->sid)) {
-      $old_submission = webform_get_submission($node->nid, $submission->sid, TRUE);
+      drupal_static_reset('webform_get_submission');
+      $old_submission = webform_get_submission($node->nid, $submission->sid);
 
       foreach ($node->webform['components'] as $cid => $component) {
         if ($component['type'] == 'file') {
@@ -2717,7 +2718,8 @@ function webform_client_form_submit($form, &$form_state) {
 
   // Check if this form is sending an email.
   if (!$is_draft && !$form_state['values']['details']['finished']) {
-    $submission = webform_get_submission($node->webform['nid'], $sid, TRUE);
+    drupal_static_reset('webform_get_submission');
+    $submission = webform_get_submission($node->webform['nid'], $sid);
     webform_submission_send_mail($node, $submission);
   }
 
-- 
1.7.9.6 (Apple Git-31.1)

