Author: manjesh Date: Wed Jun 2 23:22:32 2010 New Revision: 950817 URL: http://svn.apache.org/viewvc?rev=950817&view=rev Log: TS-383: Backing out m_capacity_host changes
Modified: trafficserver/traffic/trunk/proxy/hdrs/URL.cc trafficserver/traffic/trunk/proxy/hdrs/URL.h Modified: trafficserver/traffic/trunk/proxy/hdrs/URL.cc URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/hdrs/URL.cc?rev=950817&r1=950816&r2=950817&view=diff ============================================================================== --- trafficserver/traffic/trunk/proxy/hdrs/URL.cc (original) +++ trafficserver/traffic/trunk/proxy/hdrs/URL.cc Wed Jun 2 23:22:32 2010 @@ -177,7 +177,6 @@ url_create(HdrHeap * heap) obj_clear_data((HdrHeapObjImpl *) url); url->m_url_type = URL_TYPE_NONE; url->m_scheme_wks_idx = -1; - url->m_capacity_host = 0; url_clear_string_ref(url); return (url); } @@ -214,20 +213,6 @@ url_copy_onto(URLImpl * s_url, HdrHeap * obj_copy_data((HdrHeapObjImpl *) s_url, (HdrHeapObjImpl *) d_url); if (inherit_strs && (s_heap != d_heap)) d_heap->inherit_string_heaps(s_heap); - - // m_ptr_host is reused by the object if it has capacity and not - // reallocated on every url_host_set(); obj_copy_data() above does - // a "shallow" copy and inherit_string_heaps() inherits strings as - // "read-only" (see HdrHeap.cc). Hence we have to make sure the - // copied object uses a different buffer - if (s_url->m_ptr_host && (s_url->m_capacity_host > 0) && d_heap) { - d_url->m_ptr_host = d_heap->allocate_str(d_url->m_capacity_host); - if (d_url->m_ptr_host) { - memcpy(const_cast<char *>(d_url->m_ptr_host), s_url->m_ptr_host, s_url->m_capacity_host); - } else { - d_url->m_capacity_host = d_url->m_len_host = 0; - } - } } } @@ -240,7 +225,7 @@ url_nuke_proxy_stuff(URLImpl * d_url) d_url->m_len_scheme = 0; d_url->m_len_user = 0; d_url->m_len_password = 0; - d_url->m_len_host = d_url->m_capacity_host = 0; + d_url->m_len_host = 0; d_url->m_len_port = 0; d_url->m_ptr_scheme = NULL; @@ -330,7 +315,7 @@ URLImpl::move_strings(HdrStrHeap * new_h HDR_MOVE_STR(m_ptr_scheme, m_len_scheme); HDR_MOVE_STR(m_ptr_user, m_len_user); HDR_MOVE_STR(m_ptr_password, m_len_password); - HDR_MOVE_STR(m_ptr_host, m_capacity_host); + HDR_MOVE_STR(m_ptr_host, m_len_host); HDR_MOVE_STR(m_ptr_port, m_len_port); HDR_MOVE_STR(m_ptr_path, m_len_path); HDR_MOVE_STR(m_ptr_params, m_len_params); @@ -345,7 +330,7 @@ URLImpl::check_strings(HeapCheck * heaps CHECK_STR(m_ptr_scheme, m_len_scheme, heaps, num_heaps); CHECK_STR(m_ptr_user, m_len_user, heaps, num_heaps); CHECK_STR(m_ptr_password, m_len_password, heaps, num_heaps); - CHECK_STR(m_ptr_host, m_capacity_host, heaps, num_heaps); + CHECK_STR(m_ptr_host, m_len_host, heaps, num_heaps); CHECK_STR(m_ptr_port, m_len_port, heaps, num_heaps); CHECK_STR(m_ptr_path, m_len_path, heaps, num_heaps); CHECK_STR(m_ptr_params, m_len_params, heaps, num_heaps); @@ -425,27 +410,8 @@ void url_host_set(HdrHeap * heap, URLImpl * url, const char *value, int length, bool copy_string) { url_called_set(url); - if ((length <= 0) || (value == NULL)) { - url->m_len_host = 0; - return; - } - - if (!copy_string) { - url->m_ptr_host = value; - url->m_len_host = length; - return; - } - - if (url->m_capacity_host < length) { - if (url->m_capacity_host) { - heap->free_string(url->m_ptr_host, url->m_capacity_host); - } - url->m_ptr_host = heap->duplicate_str(value, length); - url->m_capacity_host = url->m_len_host = length; - } else { - memcpy(const_cast<char *>(url->m_ptr_host), value, length); - url->m_len_host = length; - } + if (length == 0) value = NULL; + mime_str_u16_set(heap, value, length, &(url->m_ptr_host), &(url->m_len_host), copy_string); } /*------------------------------------------------------------------------- Modified: trafficserver/traffic/trunk/proxy/hdrs/URL.h URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/hdrs/URL.h?rev=950817&r1=950816&r2=950817&view=diff ============================================================================== --- trafficserver/traffic/trunk/proxy/hdrs/URL.h (original) +++ trafficserver/traffic/trunk/proxy/hdrs/URL.h Wed Jun 2 23:22:32 2010 @@ -77,8 +77,6 @@ struct URLImpl:public HdrHeapObjImpl uint8 m_type_code; // RFC 1738 limits type code to 1 char // 6 bytes - uint16 m_capacity_host; - // 8 bytes uint32 m_clean:1; // 8 bytes + 1 bit, will result in padding