summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Garrigue <garrigue at math.nagoya-u.ac.jp>2003-11-14 14:07:57 +0000
committerJacques Garrigue <garrigue at math.nagoya-u.ac.jp>2003-11-14 14:07:57 +0000
commit8614181c50243fef47cd953d42b3205c341f93c2 (patch)
tree33a79c5f75eac0bc415dbd17ed0d25da8683793b
parentd4fa3e5b68dfcdc7771bcfa632feee5f393e0200 (diff)
downloadocaml-8614181c50243fef47cd953d42b3205c341f93c2.tar.gz
fix initialization order
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/fastclass@5919 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--bytecomp/translclass.ml10
1 files changed, 5 insertions, 5 deletions
diff --git a/bytecomp/translclass.ml b/bytecomp/translclass.ml
index 4e9e033a57..2dfac76cfa 100644
--- a/bytecomp/translclass.ml
+++ b/bytecomp/translclass.ml
@@ -193,14 +193,14 @@ let build_object_init_0 cl_table params cl copy_env subst_env top ids =
let obj_init = subst_env env obj_init in
let obj_init =
if top then obj_init else
- let i = ref 0 in
- List.fold_left
- (fun init (obj_init, env_init, _) ->
- incr i;
+ let i = ref (List.length inh_init + 1) in
+ List.fold_right
+ (fun (obj_init, env_init, _) init ->
+ decr i;
Llet(Strict, obj_init,
Lapply(Lvar env_init, [Lprim(Pfield !i, [Lvar env])]),
init))
- obj_init inh_init
+ inh_init obj_init
in
(inh_init, lfunction [env] obj_init)