rv = tzidProp->GetStringValue(tzid);
rv = tzidProp->GetValue(tzid);
calIcalComponent::AddTimezoneReference(calIIcalComponent *aTimezone){    NS_ENSURE_ARG_POINTER(aTimezone);    nsresult rv;    // verify that we're dealing with a VTIMEZONE in a VCALENDAR    nsCAutoString s;    nsCOMPtr<calIIcalComponent> comp;    rv = aTimezone->GetComponentType(s);    if (NS_FAILED(rv) || !s.EqualsLiteral("VCALENDAR")) {        NS_WARNING("calIcalComponent::AddTimezoneReference - component given is not a VCALENDAR");        return NS_ERROR_FAILURE;    }    rv = aTimezone->GetFirstSubcomponent(NS_LITERAL_CSTRING("ANY"), getter_AddRefs(comp));    if (NS_FAILED(rv) || !comp) {        NS_WARNING("calIcalComponent::AddTimezoneReference - component given has no subcomps");        return NS_ERROR_FAILURE;    }    rv = comp->GetComponentType(s);    if (NS_FAILED(rv) || !s.EqualsLiteral("VTIMEZONE")) {        NS_WARNING("calIcalComponent::AddTimezoneReference - subcomponent is not a VTIMEZONE");        return NS_ERROR_FAILURE;    }    // fetch the tzid    nsCOMPtr<calIIcalProperty> tzidProp;    rv = comp->GetFirstProperty(NS_LITERAL_CSTRING("TZID"), getter_AddRefs(tzidProp));    if (NS_FAILED(rv) || !tzidProp) {        NS_WARNING("calIcalComponent::AddTimezoneReference - failed to get TZID");        return NS_ERROR_FAILURE;    }    nsCAutoString tzid;    rv = tzidProp->GetStringValue(tzid);    NS_ENSURE_SUCCESS(rv, rv);    // figure out if we already have this tzid     if (mTimezones.Get(tzid, nsnull))        return NS_OK;    mTimezones.Put(tzid, aTimezone);    return NS_OK;}