Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 1962

Show
Ignore:
Timestamp:
09/15/07 15:43:30 (1 year ago)
Author:
nahi
Message:
  • small tuning based on performance analysis
    • cache inversed XSD::Charset::CharsetMap?
    • do not try to define xmlattr_ accessors if it already exists.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/soap/baseData.rb

    r1958 r1962  
    767767  #     value is added as an XML element with the key name. 
    768768  def self.from_obj(obj, namespace = nil) 
     769    return obj if obj.is_a?(SOAPElement) 
    769770    o = SOAPElement.new(nil) 
    770771    case obj 
  • trunk/lib/soap/mapping/literalregistry.rb

    r1955 r1962  
    354354    # untaint depends GenSupport.safemethodname 
    355355    name = XSD::CodeGen::GenSupport.safemethodname('xmlattr_' + qname.name).untaint 
    356     # untaint depends QName#dump 
    357     qnamedump = qname.dump.untaint 
    358     obj.instance_eval <<-EOS 
    359       def #{name} 
    360         @__xmlattr[#{qnamedump}] 
    361       end 
    362  
    363       def #{name}=(value) 
    364         @__xmlattr[#{qnamedump}] = value 
    365       end 
    366     EOS 
     356    unless obj.respond_to?(name) 
     357      # untaint depends QName#dump 
     358      qnamedump = qname.dump.untaint 
     359      obj.instance_eval <<-EOS 
     360        def #{name} 
     361          @__xmlattr[#{qnamedump}] 
     362        end 
     363 
     364        def #{name}=(value) 
     365          @__xmlattr[#{qnamedump}] = value 
     366        end 
     367      EOS 
     368    end 
    367369  end 
    368370 
  • trunk/lib/xsd/charset.rb

    r1947 r1962  
    7878  } 
    7979 
     80  CharsetStrCache = {} 
     81 
    8082 
    8183  ### 
     
    120122  def Charset.charset_str(label) 
    121123    if CharsetMap.respond_to?(:key) 
    122       CharsetMap.key(label.downcase) || 'X_UNKNOWN' 
     124      CharsetStrCache[label] ||= CharsetMap.key(label.downcase) || 'X_UNKNOWN' 
    123125    else 
    124       CharsetMap.index(label.downcase) || 'X_UNKNOWN' 
     126      CharsetStrCache[label] ||= CharsetMap.index(label.downcase) || 'X_UNKNOWN' 
    125127    end 
    126128  end