old_contents: import sys
  
  
  def memodict(f):
      """ Memoization decorator for a function taking a single argument """
      class memodict(dict):
          def __missing__(self, key):
              ret = self[key] = f(key)
              return ret
      return memodict().__getitem__
  
  
  @memodict
  def iscontroller(obj):
      return getattr(obj, 'exposed', False)
  
  
  @memodict
  def _cfg(f):
      if not hasattr(f, '_pecan'):
          f._pecan = {}
      return f._pecan
  
  
  if sys.version_info >= (2, 6, 5):
      def encode_if_needed(s):
          return s
  else:
      def encode_if_needed(s):  # noqa
          return s.encode('utf-8')
  
new_contents: import sys
  
  
  def iscontroller(obj):
      return getattr(obj, 'exposed', False)
  
  
  def _cfg(f):
      if not hasattr(f, '_pecan'):
          f._pecan = {}
      return f._pecan
  
  
  if sys.version_info >= (2, 6, 5):
      def encode_if_needed(s):
          return s
  else:
      def encode_if_needed(s):  # noqa
          return s.encode('utf-8')
  
subject: Fix a memory leak in pecan.util.memodict