--- a/homescreenpluginsrv/hspsdom/src/hspsdomattribute.cpp Fri Mar 12 15:43:54 2010 +0200
+++ b/homescreenpluginsrv/hspsdom/src/hspsdomattribute.cpp Mon Mar 15 12:41:53 2010 +0200
@@ -35,7 +35,6 @@
{
}
-
// -----------------------------------------------------------------------------
// ChspsDomAttribute::ConstructL
// Symbian 2nd phase constructor can leave.
@@ -45,6 +44,17 @@
{
iNameRef = iStringPool.AddStringL( aName );
}
+
+// -----------------------------------------------------------------------------
+// ChspsDomAttribute::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void ChspsDomAttribute::ConstructL( const TInt aName )
+ {
+ iNameRef = aName;
+ }
+
// -----------------------------------------------------------------------------
// ChspsDomAttribute::NewL
// Two-phased constructor.
@@ -63,6 +73,23 @@
return self;
}
+// -----------------------------------------------------------------------------
+// ChspsDomAttribute::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C ChspsDomAttribute* ChspsDomAttribute::NewL(
+ const TInt aName,
+ ChspsDomStringPool& aStringPool )
+ {
+ ChspsDomAttribute* self = new( ELeave ) ChspsDomAttribute( aStringPool );
+
+ CleanupStack::PushL( self );
+ self->ConstructL( aName );
+ CleanupStack::Pop( self );
+
+ return self;
+ }
// -----------------------------------------------------------------------------
// ChspsDomAttribute::NewL
@@ -106,18 +133,38 @@
// ChspsDomAttribute::CloneL
// -----------------------------------------------------------------------------
//
-ChspsDomAttribute* ChspsDomAttribute::CloneL( ChspsDomStringPool& aStringPool )
- {
- const TDesC8& name = iStringPool.String( iNameRef );
+ChspsDomAttribute* ChspsDomAttribute::CloneL( ChspsDomStringPool& aStringPool,
+ const TBool aFastClone )
+ {
+ ChspsDomAttribute* clone = NULL;
- ChspsDomAttribute* clone = ChspsDomAttribute::NewL( name, aStringPool );
+ if( aFastClone )
+ {
+ clone = ChspsDomAttribute::NewL( iNameRef, aStringPool );
+ }
+ else
+ {
+ const TDesC8& name = iStringPool.String( iNameRef );
+ clone = ChspsDomAttribute::NewL( name, aStringPool );
+ }
+
CleanupStack::PushL( clone );
+
if ( iValueRef > KErrNotFound )
{
- const TDesC8& value = iStringPool.String( iValueRef );
- clone->SetValueL( value );
+ if( aFastClone )
+ {
+ clone->SetValueL( iValueRef );
+ }
+ else
+ {
+ const TDesC8& value = iStringPool.String( iValueRef );
+ clone->SetValueL( value );
+ }
}
+
CleanupStack::Pop( clone );
+
return clone;
}
@@ -169,6 +216,14 @@
iValueRef = iStringPool.AddStringL( aValue );
}
+// -----------------------------------------------------------------------------
+// ChspsDomAttribute::SetValueL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void ChspsDomAttribute::SetValueL( const TInt aValue )
+ {
+ iValueRef = aValue;
+ }
// -----------------------------------------------------------------------------
// ChspsDomAttribute::Size