InfoScreen/ProcessList: do not access Vector internals

Use wrapper function to encapsulate the Vector structure
This commit is contained in:
Christian Göttsche 2021-03-12 16:46:55 +01:00
parent 3f99c2de24
commit d37d66bb3a
3 changed files with 6 additions and 2 deletions

View File

@ -28,7 +28,7 @@ InfoScreen* InfoScreen_init(InfoScreen* this, const Process* process, FunctionBa
}
this->display = Panel_new(0, 1, COLS, height, Class(ListItem), false, bar);
this->inc = IncSet_new(bar);
this->lines = Vector_new(this->display->items->type, true, DEFAULT_SIZE);
this->lines = Vector_new(Vector_type(this->display->items), true, DEFAULT_SIZE);
Panel_setHeader(this->display, panelHeader);
return this;
}

View File

@ -202,7 +202,7 @@ static void ProcessList_updateTreeSetLayer(ProcessList* this, unsigned int leftB
if (layerSize == 0)
return;
Vector* layer = Vector_new(this->processes->type, false, layerSize);
Vector* layer = Vector_new(Vector_type(this->processes), false, layerSize);
// Find all processes on the same layer (process with the same `deep` value
// and included in a range from `leftBound` to `rightBound`).

View File

@ -68,6 +68,10 @@ static inline int Vector_size(const Vector* this) {
#endif /* NDEBUG */
static inline const ObjectClass* Vector_type(const Vector* this) {
return this->type;
}
void Vector_add(Vector* this, void* data_);
int Vector_indexOf(const Vector* this, const void* search_, Object_Compare compare);