<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Simpler and cleaner code</title>
	<atom:link href="http://blog.symbian.org/2009/03/28/simpler-and-cleaner-code/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.symbian.org/2009/03/28/simpler-and-cleaner-code/</link>
	<description></description>
	<lastBuildDate>Tue, 07 Sep 2010 15:54:34 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Subhasis</title>
		<link>http://blog.symbian.org/2009/03/28/simpler-and-cleaner-code/#comment-1833</link>
		<dc:creator>Subhasis</dc:creator>
		<pubDate>Mon, 25 May 2009 17:13:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.symbian.org/?p=584#comment-1833</guid>
		<description>There is a new release available now at:

https://developer.symbian.com/main/documentation/symbian_cpp/symbian_cpp/LCL.jsp

that deals with the duplicate symbols issue and documentation updates.
Another minor release with improvements can be expected soon.

-Subhasis</description>
		<content:encoded><![CDATA[<p>There is a new release available now at:</p>
<p><a href="https://developer.symbian.com/main/documentation/symbian_cpp/symbian_cpp/LCL.jsp" rel="nofollow">https://developer.symbian.com/main/documentation/symbian_cpp/symbian_cpp/LCL.jsp</a></p>
<p>that deals with the duplicate symbols issue and documentation updates.<br />
Another minor release with improvements can be expected soon.</p>
<p>-Subhasis</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Piotr Wach</title>
		<link>http://blog.symbian.org/2009/03/28/simpler-and-cleaner-code/#comment-1821</link>
		<dc:creator>Piotr Wach</dc:creator>
		<pubDate>Mon, 25 May 2009 07:13:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.symbian.org/?p=584#comment-1821</guid>
		<description>Hey,

why when I installing EUserHL.sis on my N95 i get warning message &quot;application not compatible with the phone&quot;? I can user EUserHL if end users will also see that message.</description>
		<content:encoded><![CDATA[<p>Hey,</p>
<p>why when I installing EUserHL.sis on my N95 i get warning message &#8220;application not compatible with the phone&#8221;? I can user EUserHL if end users will also see that message.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Garbutt</title>
		<link>http://blog.symbian.org/2009/03/28/simpler-and-cleaner-code/#comment-810</link>
		<dc:creator>Alex Garbutt</dc:creator>
		<pubDate>Mon, 06 Apr 2009 23:11:56 +0000</pubDate>
		<guid isPermaLink="false">http://blog.symbian.org/?p=584#comment-810</guid>
		<description>That&#039;s what I figured. Thanks!</description>
		<content:encoded><![CDATA[<p>That&#8217;s what I figured. Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Wood</title>
		<link>http://blog.symbian.org/2009/03/28/simpler-and-cleaner-code/#comment-809</link>
		<dc:creator>David Wood</dc:creator>
		<pubDate>Mon, 06 Apr 2009 23:07:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.symbian.org/?p=584#comment-809</guid>
		<description>Hi Alex,

&gt;&lt;i&gt;the docs make reference to a method “EnsureCapacity” on the LString[8&#124;16] classes that is not defined&lt;/i&gt;

Hmm, it looks like the documentation did not keep up with some changes in the design of the APIs.

Most users of LString will be happy to accept the automated buffer allocation and re-allocation that takes place behind the scenes of this class.  The EnsureCapacityL function was one approach to allow users to override this behaviour.  In the final design, however, the function ReserveFreeCapacityL takes over this use case (though with slightly different semantics).

Here&#039;s the description of ReserveFreeCapacityL:

/**

Ensures that the remaining unused space is more than the supplied value.

May reallocate a larger storage space to meet the requirement.

As a result MaxLength() and Ptr() may return different values afterwards, and any existing raw pointers to into the descriptor data may be invalidated.

Typically, you use this method to reserve a known amount of required space in one go instead of relying on the automatic growth pattern.

@param aExtraSpaceLength The extra space required.

@leave KErrNoMemory if the the buffer needs to be reallocated and there are insufficient resources to do so.

@panic USER 11 if aLength is negative

*/

// David W.</description>
		<content:encoded><![CDATA[<p>Hi Alex,</p>
<p>&gt;<i>the docs make reference to a method “EnsureCapacity” on the LString[8|16] classes that is not defined</i></p>
<p>Hmm, it looks like the documentation did not keep up with some changes in the design of the APIs.</p>
<p>Most users of LString will be happy to accept the automated buffer allocation and re-allocation that takes place behind the scenes of this class.  The EnsureCapacityL function was one approach to allow users to override this behaviour.  In the final design, however, the function ReserveFreeCapacityL takes over this use case (though with slightly different semantics).</p>
<p>Here&#8217;s the description of ReserveFreeCapacityL:</p>
<p>/**</p>
<p>Ensures that the remaining unused space is more than the supplied value.</p>
<p>May reallocate a larger storage space to meet the requirement.</p>
<p>As a result MaxLength() and Ptr() may return different values afterwards, and any existing raw pointers to into the descriptor data may be invalidated.</p>
<p>Typically, you use this method to reserve a known amount of required space in one go instead of relying on the automatic growth pattern.</p>
<p>@param aExtraSpaceLength The extra space required.</p>
<p>@leave KErrNoMemory if the the buffer needs to be reallocated and there are insufficient resources to do so.</p>
<p>@panic USER 11 if aLength is negative</p>
<p>*/</p>
<p>// David W.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: detronizator</title>
		<link>http://blog.symbian.org/2009/03/28/simpler-and-cleaner-code/#comment-807</link>
		<dc:creator>detronizator</dc:creator>
		<pubDate>Mon, 06 Apr 2009 19:28:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.symbian.org/?p=584#comment-807</guid>
		<description>@DavidW: That sounds great!
No, I didn&#039;t read anything about it... is it public or going to be?</description>
		<content:encoded><![CDATA[<p>@DavidW: That sounds great!<br />
No, I didn&#8217;t read anything about it&#8230; is it public or going to be?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Garbutt</title>
		<link>http://blog.symbian.org/2009/03/28/simpler-and-cleaner-code/#comment-802</link>
		<dc:creator>Alex Garbutt</dc:creator>
		<pubDate>Mon, 06 Apr 2009 16:38:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.symbian.org/?p=584#comment-802</guid>
		<description>Not to leave another problem here, but the docs make reference to a method &quot;EnsureCapacity&quot; on the LString[8&#124;16] classes that is not defined.

// Alex Garbutt</description>
		<content:encoded><![CDATA[<p>Not to leave another problem here, but the docs make reference to a method &#8220;EnsureCapacity&#8221; on the LString[8|16] classes that is not defined.</p>
<p>// Alex Garbutt</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Wood</title>
		<link>http://blog.symbian.org/2009/03/28/simpler-and-cleaner-code/#comment-800</link>
		<dc:creator>David Wood</dc:creator>
		<pubDate>Mon, 06 Apr 2009 15:58:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.symbian.org/?p=584#comment-800</guid>
		<description>Hi detronizator,

&gt;&lt;i&gt;Another area of improvement could be, for example, creation of a new Client-Server architecture sub-classes that implement “sub-sessioning” automatically&lt;/i&gt;

It looks like you&#039;ve been reading the specs for the Core Idioms 2 project!

Or maybe this is a case of &quot;great minds think alike&quot;.

// David W.</description>
		<content:encoded><![CDATA[<p>Hi detronizator,</p>
<p>&gt;<i>Another area of improvement could be, for example, creation of a new Client-Server architecture sub-classes that implement “sub-sessioning” automatically</i></p>
<p>It looks like you&#8217;ve been reading the specs for the Core Idioms 2 project!</p>
<p>Or maybe this is a case of &#8220;great minds think alike&#8221;.</p>
<p>// David W.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: detronizator</title>
		<link>http://blog.symbian.org/2009/03/28/simpler-and-cleaner-code/#comment-791</link>
		<dc:creator>detronizator</dc:creator>
		<pubDate>Mon, 06 Apr 2009 15:02:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.symbian.org/?p=584#comment-791</guid>
		<description>Interesting improvements.
Keep adding stuff to the framework, to make developer&#039;s life easier.
I particularly like LString.
Another area of improvement could be, for example, creation of a new Client-Server architecture sub-classes that implement &quot;sub-sessioning&quot; automatically. Sometimes the Client-Server architecture efficiency is precluded to &quot;young developers&quot; because of the &quot;trickiness&quot;.

Anyway, again, keep bringing this kind of stuff to the table.</description>
		<content:encoded><![CDATA[<p>Interesting improvements.<br />
Keep adding stuff to the framework, to make developer&#8217;s life easier.<br />
I particularly like LString.<br />
Another area of improvement could be, for example, creation of a new Client-Server architecture sub-classes that implement &#8220;sub-sessioning&#8221; automatically. Sometimes the Client-Server architecture efficiency is precluded to &#8220;young developers&#8221; because of the &#8220;trickiness&#8221;.</p>
<p>Anyway, again, keep bringing this kind of stuff to the table.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Wood</title>
		<link>http://blog.symbian.org/2009/03/28/simpler-and-cleaner-code/#comment-586</link>
		<dc:creator>David Wood</dc:creator>
		<pubDate>Tue, 31 Mar 2009 08:11:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.symbian.org/?p=584#comment-586</guid>
		<description>Hi Alex,

Thanks for bug report.  Software engineers from the Symbian Base Services team are looking at it now.

&gt;&lt;i&gt;I don’t know where the right place to post this is...&lt;/i&gt;

The best place will be the Symbian Foundation Bugzilla tracker, which will shortly become available via one of the symbian.org sites

// David W.</description>
		<content:encoded><![CDATA[<p>Hi Alex,</p>
<p>Thanks for bug report.  Software engineers from the Symbian Base Services team are looking at it now.</p>
<p>&gt;<i>I don’t know where the right place to post this is&#8230;</i></p>
<p>The best place will be the Symbian Foundation Bugzilla tracker, which will shortly become available via one of the symbian.org sites</p>
<p>// David W.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Garbutt</title>
		<link>http://blog.symbian.org/2009/03/28/simpler-and-cleaner-code/#comment-581</link>
		<dc:creator>Alex Garbutt</dc:creator>
		<pubDate>Tue, 31 Mar 2009 00:53:28 +0000</pubDate>
		<guid isPermaLink="false">http://blog.symbian.org/?p=584#comment-581</guid>
		<description>Hrmm...I don&#039;t know where the right place to post this is, but this seems as good as any...

There appears to be a bug within &quot;emanaged.h&quot;.

The function void ManagedPopCleanupStackItem(bool aIsManaged) is defined directly within the header, but is neither marked inline nor static.

The problem occurs when there are several source files that include this header file (even with the header guard). Each resultant object file will export the ManagedPopCleanupStackItem symbol and cause linker errors for multiply defined symbols.

Three possible solutions...
a. Declare the function inline:
Symbol won&#039;t be created as the code is inline. Increase the size of each class that calls it. (The five LCleanupXXX classes).
b. Declare the function static:
Symbol won&#039;t be exported outside the object file. Increase the size of each object file that includes the header file.
c. Leave the function prototype (declare it extern) and move the function definition:
Symbol only defined once, not as readily patched by end users.</description>
		<content:encoded><![CDATA[<p>Hrmm&#8230;I don&#8217;t know where the right place to post this is, but this seems as good as any&#8230;</p>
<p>There appears to be a bug within &#8220;emanaged.h&#8221;.</p>
<p>The function void ManagedPopCleanupStackItem(bool aIsManaged) is defined directly within the header, but is neither marked inline nor static.</p>
<p>The problem occurs when there are several source files that include this header file (even with the header guard). Each resultant object file will export the ManagedPopCleanupStackItem symbol and cause linker errors for multiply defined symbols.</p>
<p>Three possible solutions&#8230;<br />
a. Declare the function inline:<br />
Symbol won&#8217;t be created as the code is inline. Increase the size of each class that calls it. (The five LCleanupXXX classes).<br />
b. Declare the function static:<br />
Symbol won&#8217;t be exported outside the object file. Increase the size of each object file that includes the header file.<br />
c. Leave the function prototype (declare it extern) and move the function definition:<br />
Symbol only defined once, not as readily patched by end users.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
