# File lib/facter/util/windows/api_types.rb, line 52
    def self.read_win32_local_pointer(ffi_pointer, &block)
      ptr = nil
      begin
        ptr = ffi_pointer.read_pointer
        yield ptr
      ensure
        if ptr && ! ptr.null?
          if WIN32.LocalFree(ptr.address) != NULL_HANDLE
            Puppet.debug "LocalFree memory leak"
          end
        end
      end

      # ptr has already had LocalFree called, so nothing to return

      nil
    end