[gnumeric] deps: cleanup.
- From: Morten Welinder <mortenw src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnumeric] deps: cleanup.
- Date: Sat, 31 Oct 2009 23:57:11 +0000 (UTC)
commit 91a1f518073930404635008b301b038442b41893
Author: Morten Welinder <terra gnome org>
Date: Sat Oct 31 19:56:49 2009 -0400
deps: cleanup.
ChangeLog | 3 +++
src/dependent.c | 24 ++++++++++++++++--------
src/dependent.h | 9 ++-------
src/solver.h | 4 ++--
src/tools/solver/solver.c | 10 +++++-----
5 files changed, 28 insertions(+), 22 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index eec8850..492c22f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2009-10-31 Morten Welinder <terra gnome org>
+ * src/dependent.c (dependent_managed_init,
+ dependent_managed_set_expr): New functions.
+
* src/value.c (value_new_cellrange_parsepos_str): Use the right
convensions. Add flags argument for finer control. All callers
changed.
diff --git a/src/dependent.c b/src/dependent.c
index d6bb8a2..93730e0 100644
--- a/src/dependent.c
+++ b/src/dependent.c
@@ -1240,22 +1240,30 @@ workbook_unlink_3d_dep (GnmDependent *dep)
}
/*****************************************************************************/
+/*
+ * "Managed" dependent handling.
+ *
+ * A managed dependent is simply an expression set up to be maintained by
+ * the dependency system so it follows row/column insert/delete nicely.
+ *
+ * The expression being managed is typically a cell range, but can be any
+ * expression. Everything is interpreted relative to A1 in the sheet.
+ */
void
-dependent_managed_init (GnmManagedDependent *dep, Sheet *sheet)
+dependent_managed_init (GnmDependent *dep, Sheet *sheet)
{
memset (dep, 0, sizeof (dep));
- dep->base.flags = DEPENDENT_MANAGED;
- dep->base.sheet = sheet;
+ dep->flags = DEPENDENT_MANAGED;
+ dep->sheet = sheet;
}
void
-dependent_managed_set_expr (GnmManagedDependent *dep,
- GnmExprTop const *texpr)
+dependent_managed_set_expr (GnmDependent *dep, GnmExprTop const *texpr)
{
- dependent_set_expr (&dep->base, texpr);
- if (texpr && dep->base.sheet)
- dependent_link (&dep->base);
+ dependent_set_expr (dep, texpr);
+ if (texpr && dep->sheet)
+ dependent_link (dep);
}
static void
diff --git a/src/dependent.h b/src/dependent.h
index 1bfee5f..ced8307 100644
--- a/src/dependent.h
+++ b/src/dependent.h
@@ -113,13 +113,8 @@ void gnm_dep_container_dump (GnmDepContainer const *deps,
void gnm_dep_container_sanity_check (GnmDepContainer const *deps);
void gnm_dep_container_resize (GnmDepContainer *deps, int rows);
-typedef struct {
- GnmDependent base;
-} GnmManagedDependent;
-
-void dependent_managed_init (GnmManagedDependent *dep, Sheet *sheet);
-void dependent_managed_set_expr (GnmManagedDependent *dep,
- GnmExprTop const *texpr);
+void dependent_managed_init (GnmDependent *dep, Sheet *sheet);
+void dependent_managed_set_expr (GnmDependent *dep, GnmExprTop const *texpr);
#define DEPENDENT_CONTAINER_FOREACH_DEPENDENT(dc, dep, code) \
do { \
diff --git a/src/solver.h b/src/solver.h
index 49a98ed..acb3257 100644
--- a/src/solver.h
+++ b/src/solver.h
@@ -70,10 +70,10 @@ typedef struct {
SolverConstraintType type;
/* Must be a range. */
- GnmManagedDependent lhs;
+ GnmDependent lhs;
/* Must be a constant or a range. */
- GnmManagedDependent rhs;
+ GnmDependent rhs;
} SolverConstraint;
#ifdef GNM_ENABLE_SOLVER
diff --git a/src/tools/solver/solver.c b/src/tools/solver/solver.c
index d2c3a1e..dce5e0e 100644
--- a/src/tools/solver/solver.c
+++ b/src/tools/solver/solver.c
@@ -311,8 +311,8 @@ gnm_solver_constraint_dup (SolverConstraint *c, Sheet *sheet)
{
SolverConstraint *res = gnm_solver_constraint_new (sheet);
res->type = c->type;
- dependent_managed_set_expr (&res->lhs, res->lhs.base.texpr);
- dependent_managed_set_expr (&res->rhs, res->lhs.base.texpr);
+ dependent_managed_set_expr (&res->lhs, res->lhs.texpr);
+ dependent_managed_set_expr (&res->rhs, res->lhs.texpr);
return res;
}
@@ -389,7 +389,7 @@ gnm_solver_constraint_get_size (SolverConstraint const *c)
GnmValue const *
gnm_solver_constraint_get_lhs (SolverConstraint const *c)
{
- GnmExprTop const *texpr = c->lhs.base.texpr;
+ GnmExprTop const *texpr = c->lhs.texpr;
return texpr ? gnm_expr_top_get_constant (texpr) : NULL;
}
@@ -405,7 +405,7 @@ gnm_solver_constraint_set_lhs (SolverConstraint *c, GnmValue *v)
GnmValue const *
gnm_solver_constraint_get_rhs (SolverConstraint const *c)
{
- GnmExprTop const *texpr = c->rhs.base.texpr;
+ GnmExprTop const *texpr = c->rhs.texpr;
return texpr ? gnm_expr_top_get_constant (texpr) : NULL;
}
@@ -548,7 +548,7 @@ gnm_solver_constraint_side_as_str (SolverConstraint const *c,
{
GnmExprTop const *texpr;
- texpr = lhs ? c->lhs.base.texpr : c->rhs.base.texpr;
+ texpr = lhs ? c->lhs.texpr : c->rhs.texpr;
if (texpr) {
GnmConventionsOut out;
GnmParsePos pp;
[
Date Prev][Date Next] [
Thread Prev][Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]