Changeset View
Changeset View
Standalone View
Standalone View
src/plasma/framesvg.cpp
Show First 20 Lines • Show All 952 Lines • ▼ Show 20 Line(s) | 951 | if (!frame->frameSize.isValid()) { | |||
---|---|---|---|---|---|
953 | frame->frameSize = q->size(); | 953 | frame->frameSize = q->size(); | ||
954 | } | 954 | } | ||
955 | 955 | | |||
956 | return frame->frameSize; | 956 | return frame->frameSize; | ||
957 | } | 957 | } | ||
958 | 958 | | |||
959 | void FrameData::ref(FrameSvg *svg) | 959 | void FrameData::ref(FrameSvg *svg) | ||
960 | { | 960 | { | ||
961 | references[svg] = references[svg] + 1; | 961 | references[svg]++; | ||
962 | //qCDebug(LOG_PLASMA) << this << svg << references[svg]; | 962 | //qCDebug(LOG_PLASMA) << this << svg << references[svg]; | ||
963 | } | 963 | } | ||
964 | 964 | | |||
965 | bool FrameData::deref(FrameSvg *svg) | 965 | bool FrameData::deref(FrameSvg *svg) | ||
966 | { | 966 | { | ||
967 | references[svg] = references[svg] - 1; | 967 | auto it = references.find(svg); | ||
968 | //qCDebug(LOG_PLASMA) << this << svg << references[svg]; | 968 | (*it)--; | ||
969 | if (references[svg] < 1) { | 969 | if (*it < 1) { | ||
970 | references.remove(svg); | 970 | references.erase(it); | ||
broulik: Can we assume `references` always contains `svg`? | |||||
if we're calling deref without it being paired with ref then we have bigger problems. davidedmundson: if we're calling deref without it being paired with ref then we have bigger problems. | |||||
broulik: :D fair enough | |||||
971 | } | 971 | } | ||
972 | 972 | | |||
973 | return references.isEmpty(); | 973 | return references.isEmpty(); | ||
974 | } | 974 | } | ||
975 | 975 | | |||
976 | bool FrameData::removeRefs(FrameSvg *svg) | 976 | bool FrameData::removeRefs(FrameSvg *svg) | ||
977 | { | 977 | { | ||
978 | references.remove(svg); | 978 | references.remove(svg); | ||
Show All 35 Lines |
Can we assume references always contains svg?