diff --git a/_service b/_service
index 3e573bc..e7eac70 100644
--- a/_service
+++ b/_service
@@ -3,8 +3,8 @@
hg
https://code.google.com/p/vim
vim
- 7.4.608.hg
- v7-4-608
+ 7.4.629.hg
+ v7-4-629
xz
diff --git a/vim-7.4.608.hg.6563.tar.xz b/vim-7.4.608.hg.6563.tar.xz
deleted file mode 100644
index 685ad1a..0000000
--- a/vim-7.4.608.hg.6563.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:90fbbf8a7587e2e68997c017754d38b04c683c3ea411266a4da2e1d78a0a1e43
-size 7783768
diff --git a/vim-7.4.629.hg.6606.tar.xz b/vim-7.4.629.hg.6606.tar.xz
new file mode 100644
index 0000000..71f4841
--- /dev/null
+++ b/vim-7.4.629.hg.6606.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:31fc60240787ebe1c132ec7931d08733fa74d0ca0edcd3fcb59c91cbd001296f
+size 7785992
diff --git a/vim-speedup-gc.patch b/vim-speedup-gc.patch
deleted file mode 100644
index 58988d9..0000000
--- a/vim-speedup-gc.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-Index: vim-7.4.580.hg.6506/src/eval.c
-===================================================================
---- vim-7.4.580.hg.6506.orig/src/eval.c
-+++ vim-7.4.580.hg.6506/src/eval.c
-@@ -6927,48 +6927,51 @@ garbage_collect()
- free_unref_items(copyID)
- int copyID;
- {
-- dict_T *dd;
-- list_T *ll;
-+ dict_T *dd, *dd_next;
-+ list_T *ll, *ll_next;
- int did_free = FALSE;
-
- /*
- * Go through the list of dicts and free items without the copyID.
- */
-- for (dd = first_dict; dd != NULL; )
-+ for (dd = first_dict; dd != NULL; ) {
- if ((dd->dv_copyID & COPYID_MASK) != (copyID & COPYID_MASK))
- {
- /* Free the Dictionary and ordinary items it contains, but don't
- * recurse into Lists and Dictionaries, they will be in the list
- * of dicts or list of lists. */
-+ dd_next = dd->dv_used_next;
- dict_free(dd, FALSE);
- did_free = TRUE;
--
-- /* restart, next dict may also have been freed */
-- dd = first_dict;
-+ dd = dd_next;
- }
-- else
-+ else {
- dd = dd->dv_used_next;
-+ }
-+ }
-
- /*
- * Go through the list of lists and free items without the copyID.
- * But don't free a list that has a watcher (used in a for loop), these
- * are not referenced anywhere.
- */
-- for (ll = first_list; ll != NULL; )
-+ for (ll = first_list; ll != NULL; ) {
- if ((ll->lv_copyID & COPYID_MASK) != (copyID & COPYID_MASK)
- && ll->lv_watch == NULL)
- {
- /* Free the List and ordinary items it contains, but don't recurse
- * into Lists and Dictionaries, they will be in the list of dicts
- * or list of lists. */
-+
-+ ll_next = ll->lv_used_next;
- list_free(ll, FALSE);
- did_free = TRUE;
--
-- /* restart, next list may also have been freed */
-- ll = first_list;
-+ ll = ll_next;
- }
-- else
-+ else {
- ll = ll->lv_used_next;
-+ }
-+ }
-
- return did_free;
- }
-@@ -7125,6 +7128,7 @@ dict_free(d, recurse)
-
- /* Lock the hashtab, we don't want it to resize while freeing items. */
- hash_lock(&d->dv_hashtab);
-+ assert(d->dv_hashtab.ht_locked > 0);
- todo = (int)d->dv_hashtab.ht_used;
- for (hi = d->dv_hashtab.ht_array; todo > 0; ++hi)
- {
diff --git a/vim.changes b/vim.changes
index c8daaf3..3640fc1 100644
--- a/vim.changes
+++ b/vim.changes
@@ -1,3 +1,26 @@
+-------------------------------------------------------------------
+Wed Feb 11 11:42:11 UTC 2015 - idonmez@suse.com
+
+- Updated to revision 629, fixes the following problems
+ * For complicated list and dict use the garbage collector can run
+ out of stack space.
+ * Syntax error.
+ * The NFA engine does not implement the 'redrawtime' time limit.
+ * Vim hangs when freeing a lot of objects.
+ * Wrong ":argdo" range does not cause an error.
+ * luaV_setref() is missing a return statement. (Ozaki Kiichi)
+ * luaV_setref() not returning the correct value.
+ * Compiler warning for unitinialized variable. (Tony Mechelynck)
+ * Returning 1 in the wrong function. (Raymond Ko)
+ * Compiler warning for unused argument.
+ * Crash with pattern: \(\)\{80000} (Dominique Pelle)
+ * May leak memory or crash when vim_realloc() returns NULL.
+ * Possible NULL pointer dereference.
+ * The last screen cell is not updated.
+ * Compiler warning for variable might be clobbered by longjmp.
+ * Coverity warning for Out-of-bounds read.
+- Remove vim-speedup-gc.patch, fixed upstream
+
-------------------------------------------------------------------
Mon Feb 2 13:17:21 UTC 2015 - idonmez@suse.com
diff --git a/vim.spec b/vim.spec
index ae4d51f..cc1048d 100644
--- a/vim.spec
+++ b/vim.spec
@@ -17,8 +17,8 @@
%define pkg_version 7.4
-%define patchlevel 608
-%define revision 6563
+%define patchlevel 629
+%define revision 6606
%define VIM_SUBDIR vim74
%define site_runtimepath /usr/share/vim/site
%define make make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/current MAKE="make -e" %{?_smp_mflags}
@@ -105,7 +105,6 @@ Patch18: %{name}-7.3-filetype_spec.patch
Patch19: %{name}-7.3-diff_check.patch
Patch21: %{name}-7.3-filetype_changes.patch
Patch22: %{name}-7.4-filetype_mine.patch
-Patch23: %{name}-speedup-gc.patch
Patch100: vim-7.1.314-CVE-2009-0316-debian.patch
Patch101: vim73-no-static-libpython.patch
%{perl_requires}
@@ -188,7 +187,6 @@ cp %{SOURCE23} runtime/syntax/apparmor.vim
%patch19 -p1
%patch21 -p1
%patch22 -p1
-%patch23 -p1
%patch100 -p1
%patch101
cp %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE8} %{SOURCE10} .